这可能是一个非常基本的问题,但我无法弄清楚该怎么做。
我需要在不相关的视图中找到id中的用户名。
在我的应用中,我的订单有很多里程碑。每个里程碑都有一个关联用户,尽管里程碑模型和用户模型之间没有关系。在我的里程碑表单中,我使用以下内容来获取用户ID并显示为名称:
<%= f.input :milestone_user, :as => :select, :multiple => false, :input_html => { :size => 1 }, :label => "", :collection => User.find(:all, :order => "name ASC") %>
但是,在我的展示里程碑视图中,我只能看到一个id。
为了显示名称,我在控制台中尝试这样的测试:
@user = User.where(:id => 2)
但是当我跑步时:
@user.name
我得到一个no方法错误。
我的问题如下:
- 更新 -
在我看来,我完全迷失了。如果我使用以下建议:
@user = User.find(2)
实际上我们需要的是:
@user = User.find(:milestone_user)
里程碑_用户是整数。但这给了我错误。很困惑......
- 更新2 -
在我的索引视图中,我实际上是使用表生成器来显示信息。为简单起见,我删除了额外的代码。我的主页#index视图包含:
<% for milestone in orders %>
<li><%= link_to milestone.name, milestone_path(milestone.id), { 'data-href' => milestone.notes, :class => 'selector' } %></li>
<li><%= @users.name %> </li>
<% end %>
我的家庭控制员:
@milestones = Milestone.all
@users = User.find(params[:milestone_user])
答案 0 :(得分:1)
将@user = User.where(:id => 2)
替换为@user = User.find(2)
更新2
最简单的方法 - 从您的home#index方法中删除@users = User.find(params[:milestone_user])
并添加正确的视图文件:
<% for milestone in orders %>
<li><%= link_to milestone.name, milestone_path(milestone.id), { 'data-href' => milestone.notes, :class => 'selector' } %></li>
<li><%= User.find(milestone.user_id).name %> </li>
<% end %>