我正在开发一个具有用户和授权模型的 Rails 应用程序。每个用户可以有许多授权,每个授权都属于一个特定的用户。我为此使用了belongs_to 关联。现在,当我尝试使用访问特定用户的授权时
user = User.find(params(:id))
auth = user.authorizations
现在的问题是当我尝试使用访问授权字段时
auth.id
我没有找到方法错误,但以下
Authorization.first.id
工作正常。它们之间有什么区别?
我正在开发一个具有用户和授权模型的 Rails 应用程序。每个用户可以有许多授权,每个授权都属于一个特定的用户。我为此使用了belongs_to 关联。现在,当我尝试使用访问特定用户的授权时
user = User.find(params(:id))
auth = user.authorizations
现在的问题是当我尝试使用访问授权字段时
auth.id
我没有找到方法错误,但以下
Authorization.first.id
工作正常。它们之间有什么区别?
如果用户has_many :authorizations
然后user.authorizations
返回用户授权的数组(实际上它返回AR:Relation
但现在没关系)。因此,如果您想获得id
可以使用的第一个授权,user.authorizations.first
并且如果您想获得该用户的所有授权 ID,则可以使用user.authorizations.map(&:id)
@authorizations = user.authorizations
将返回授权列表。所以你只需形成一个循环然后获取字段值。例子
@authorizations.each do |auth|
auth.id
end
auth = user.authorizations
现在 auth 将是一个 Authorization 对象数组
auth.first.id
除非数组不为空,否则将起作用