Ruby on rails 链接到用户路径(@user)未打开页面
在我的用户索引页面中,我想打开用户的详细信息页面(使用link_to标记),并获得错误消息No route matches{:action=>“show”,:controller=>“users”,:id=>nil}缺少必需的键:[:id] 当我输入url…/users/id(例如users/1)时,我确实得到了正确的页面。尝试了许多链接到标记的备选方案。应该是什么 这是关联的代码:Ruby on rails 链接到用户路径(@user)未打开页面,ruby-on-rails,Ruby On Rails,在我的用户索引页面中,我想打开用户的详细信息页面(使用link_to标记),并获得错误消息No route matches{:action=>“show”,:controller=>“users”,:id=>nil}缺少必需的键:[:id] 当我输入url…/users/id(例如users/1)时,我确实得到了正确的页面。尝试了许多链接到标记的备选方案。应该是什么 这是关联的代码: <ol class="list-group"> <% @users.each do |
<ol class="list-group">
<% @users.each do |user| %>
<li class="list-group-item clearfix">
<h3 class="pull-right"><small class="text-uppercase">created </small><%= user.created_at.to_time %></h3>
<h2 class="h3"><%= user.first_name %> <%= user.last_name %><small> <%= user.username %></small></h2>
<%= link_to "details", user_path(@user), class: "pull-right" %>
<h4><%= user.email %></h4>
</li>
<% end %>
</ol>
和route.rb:
resources:users
在您的代码中,您已经写入了@user
,并且没有为其分配任何值。由于实例变量的默认值是nil
,它只是传递nil而不是引发任何错误
改变
<%= link_to "details", user_path(@user), class: "pull-right" %>
到
它会起作用。试试这个:
在ShowAction中,您定义了@user,这意味着只有一个用户,所以并没有任何从对象提取数据的循环
<ol class="list-group">
<li class="list-group-item clearfix">
<h3 class="pull-right"><small class="text-uppercase">created </small><%= @user.created_at.to_time %></h3>
<h2 class="h3"><%= @user.first_name %> <%= @user.last_name %><small> <%= @user.username %></small></h2>
<%= link_to "details", user_path(@user), class: "pull-right" %>
<h4><%= @user.email %></h4>
</li>
</ol>
创建
为什么要运行额外循环,以便从对象中提取单个数据。@vipin:不确定使用额外循环是什么意思。我在索引页上运行一个循环,列出所有用户(列表组项目中的每个用户);然后从单个用户打开用户详细信息页面。您的上面是show.html。erb@vipin-它来自索引页;不是显示页面。那你为什么显示,你的show.rb action对我来说也很有用。。!!thnx
<%= link_to "details", user_path(user), class: "pull-right" %>
<ol class="list-group">
<li class="list-group-item clearfix">
<h3 class="pull-right"><small class="text-uppercase">created </small><%= @user.created_at.to_time %></h3>
<h2 class="h3"><%= @user.first_name %> <%= @user.last_name %><small> <%= @user.username %></small></h2>
<%= link_to "details", user_path(@user), class: "pull-right" %>
<h4><%= @user.email %></h4>
</li>
</ol>