我正在尝试从哈希user_id
调用role_id
和current_role
字段。当我尝试拨打current_role.role_id
或current_role.user_id
时,收到以下错误消息:
ActionView::Template::Error (undefined method `role_id' for #<ActiveRecord::Relation::ActiveRecord_Relation_RoleMembership:0x00000103d4fbd0>):
如果我尝试运行current_role.inspect
,我会发现user_id
和role_id
都已设置。以下是current_role.inspect
的回复:
#<ActiveRecord::Relation [#<RoleMembership id: 1, user_id: 1, role_id: 2, created_at: "2014-01-27 02:25:25", updated_at: "2014-01-27 02:25:25">]>
为什么我无法拨打current_role.role_id
或current_role.user_id
?任何帮助将不胜感激。
答案 0 :(得分:2)
这是因为current_role
是ActiveRecord::Relation
而不是RoleMembership
的实例。
要获取role_id
关系中第一个RoleMembership
的{{1}},请使用:
current_role
如果您想将current_role默认设置为第一个current_role.first.role_id
,则应将RoleMembership
定义更新为以下内容:
current_role
使用更新的def current_role
RoleMembership.where(...).first
end
定义,您就可以使用current_role
,它将返回预期的current_role.role_id
。