微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Ruby On Rails – “未定义的方法`id’为4:Fixnum”

我最近决定在 Ruby On Rails应用程序中列出所有用户 – 因为我无法弄清楚如何以其他方式列出它们,我决定使用partials.
我的管理页面上有以下内容(只是连接到自己的管理控制器):

<%= render :partial => User.find(:all) %>

然后我在我的用户视图文件夹中有一个名为_user.html.erb的文件.这包含以下内容

<ul>
<% div_for @user.object_id do %>
    <li><%= link_to user.username,user.username %></li>
<% end %>
</ul>

当应用程序运行并进入管理页面时,我收到以下错误

undefined method `id’ for 4:Fixnum

它说这是因为这一行(在部分文件中):

<% div_for @user.object_id do %>

我不确定为什么会发生这种情况(并且已经用Google搜索了几个小时才能找到结果并且只找到对我不起作用的解决方案).我认为这与我对@user实例变量的使用有关,但我不完全确定.

解决方法

你得到那个错误,因为div_for期望一个活动的记录对象作为参数,它调用id方法.传入一个fixnum(@ user.object_id的结果),它不是一个活动的记录对象,也没有id方法.

所以传入@user而不是@ user.object_id,它会起作用.

你也应该使用user而不是@user,rails 3不再为partials设置实例变量.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐