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

时间:2012-04-24 07:03:12

标签: ruby-on-rails ruby-on-rails-3

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

访问特定用户的授权时
user = User.find(params(:id))
auth = user.authorizations

现在问题是当我尝试使用

访问授权字段时
auth.id

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

Authorization.first.id 

工作正常。他们之间有什么区别?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

 auth = user.authorizations

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

 auth.first.id 
除非数组不为空,否则

将起作用

答案 2 :(得分:1)

@authorizations = user.authorizations

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

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