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设置实例变量.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...