我正在使用具有用户和授权模型的rails应用程序。 Eacch用户可以拥有多个授权,每个授权都属于特定用户。我为此使用了belongs_to协会。现在当我尝试使用
访问特定用户的授权时user = User.find(params(:id))
auth = user.authorizations
现在问题是当我尝试使用
访问授权字段时auth.id
我没有找到方法发现错误,但以下
Authorization.first.id
工作正常。他们之间有什么区别?
答案 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