Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 链接到用户路径(@user)未打开页面_Ruby On Rails - Fatal编程技术网

Ruby on rails 链接到用户路径(@user)未打开页面

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 |

在我的用户索引页面中,我想打开用户的详细信息页面(使用link_to标记),并获得错误消息No route matches{:action=>“show”,:controller=>“users”,:id=>nil}缺少必需的键:[:id]

当我输入url…/users/id(例如users/1)时,我确实得到了正确的页面。尝试了许多链接到标记的备选方案。应该是什么

这是关联的代码:

<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>