Ruby on rails 3 无法在资产索引页上显示用户名

Ruby on rails 3 无法在资产索引页上显示用户名,ruby-on-rails-3,Ruby On Rails 3,我正在尝试创建一个索引页面,其中显示所有资产,包括一个指向分配给它们的用户的链接,但是当我使用 def index @assets = Asset.paginate(page: params[:page]) @user = User.find(params[:id]) end 它返回-找不到没有ID的用户 index.html.erb-资产 <%= provide(:title, 'Assets') %> <h1>All assets</h1> <

我正在尝试创建一个索引页面,其中显示所有资产,包括一个指向分配给它们的用户的链接,但是当我使用

def index
 @assets = Asset.paginate(page: params[:page])
 @user = User.find(params[:id])
end
它返回-找不到没有ID的用户

index.html.erb-资产

<%= provide(:title, 'Assets') %>
<h1>All assets</h1>
<%= will_paginate @assets %>
<ol class="assets">
    <%= render @assets %>
</ol>
<%= will_paginate @assets %>

所有资产
_asset.html.erb部分

<li>
<span class="id">JTC<%= asset.id %></span>
<span class="serial"><%= asset.serial_no %></span>
<span class="status">Status: <%= asset.status %></span>
<span class="type">Type: <%= asset.asset_type %><br/></span>
<span class="description">Description: <%= asset.asset_description %><br /></span>
<span class="comment"><em><%= asset.comment %></em></span>
<span class="timestamp">
    <br />Added <%= time_ago_in_words(asset.created_at) %> ago. <br /> Assigned to: <%= link_to 
    @user.name %>
    <br />Date Purchased: <%= asset.date_purchased %> 
</span>
</li>
  • JTC 地位: 类型:
    说明:

    之前添加的
    分配给:
    购买日期:
  • @user=user.find(params[:id])
    需要一个与
    /assets/40
    类似的URL,其中40是id(即使这样也没有意义,因为40应该是资产的id,而不是用户)。当您仅访问
    /assets
    时,没有id参数,因此它基本上会尝试执行
    User.find(nil)
    ,这会导致错误

    假设资产属于用户,您应该去掉控制器中的
    @user=user.find(params[:id])
    行,并将您的部分更改为使用
    asset.user.name
    ,而不是
    @user.name

    为避免用户出现N+1查询情况,您可以更新控制器以使用以下选项:

    @assets = Asset.includes(:user).paginate(page: params[:page])
    

    现在正在显示用户名,谢谢。不幸的是,链接似乎不起作用。我相信我会应付的。link_to需要两个参数:标题和链接或资源。试试
    。谢谢,在提到link\u不起作用之前,我真的觉得自己很傻,没想过要试试。