首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionView::模板::Error

ActionView::模板::Error
EN

Stack Overflow用户
提问于 2014-01-27 02:40:31
回答 1查看 230关注 0票数 0

我正在尝试从散列user_idrole_id字段调用current_role。当我尝试调用current_role.role_idcurrent_role.user_id时,会收到以下错误消息:

代码语言:javascript
复制
ActionView::Template::Error (undefined method `role_id' for #<ActiveRecord::Relation::ActiveRecord_Relation_RoleMembership:0x00000103d4fbd0>):

如果我尝试运行current_role.inspect,我会看到user_idrole_id都已经设置好了。以下是来自current_role.inspect的响应

代码语言:javascript
复制
#<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_idcurrent_role.user_id?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 02:43:33

这是因为current_roleActiveRecord::Relation的实例,而不是RoleMembership的实例。

要获取role_id关系中的第一个RoleMembership,请使用:

代码语言:javascript
复制
current_role.first.role_id

如果要将current_role默认为第一个RoleMembership,则应将current_role定义更新为如下所示:

代码语言:javascript
复制
def current_role
  RoleMembership.where(...).first
end

使用更新的current_role定义,您将能够使用current_role.role_id,并且它将返回预期的role_id

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21372164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档