如何访问rails中belongs_to关联中的字段

我正在使用具有用户和授权模型的rails应用程序。 Eacch用户可以拥有多个授权,每个授权都属于特定用户。 我为此使用了belongs_to协会。 现在当我试图访问特定用户的授权使用时

user = User.find(params(:id)) auth = user.authorizations 

现在的问题是当我尝试使用授权访问字段时

 auth.id 

我没有找到方法发现错误,但以下

 Authorization.first.id 

工作良好。 他们之间有什么区别?

如果用户has_many :authorizationsuser.authorizations返回用户授权的数组(实际上它返回AR:Relation但现在无关紧要)。 因此,如果您想获得第一个授权的id ,您可以使用user.authorizations.first ,如果您想获得该用户授权的所有ID,您可以使用user.authorizations.map(&:id)

  auth = user.authorizations 

现在auth将是一个授权对象数组

  auth.first.id 

除非数组不为空,否则将起作用

 @authorizations = user.authorizations 

将返回授权列表。 所以你只需要形成一个循环然后获取字段值。 例

 @authorizations.each do |auth| auth.id end