1

我正在开发一个具有用户和授权模型的 Rails 应用程序。每个用户可以有许多授权,每个授权都属于一个特定的用户。我为此使用了belongs_to 关联。现在,当我尝试使用访问特定用户的授权时

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

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

auth.id

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

Authorization.first.id 

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

4

3 回答 3

2

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

于 2012-04-24T07:08:59.803 回答
1
@authorizations = user.authorizations

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

@authorizations.each do |auth|
  auth.id
end
于 2012-04-24T07:09:50.797 回答
1
 auth = user.authorizations

现在 auth 将是一个 Authorization 对象数组

 auth.first.id 

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

于 2012-04-24T07:08:24.667 回答