我应该在哪里设置current_user,以便我没有丢失密钥错误?

时间:2013-11-21 23:22:36

标签: ruby-on-rails ruby-on-rails-4

我的问题假设一个具体的答案,但可能不准确。

我创建了一条路线:

get 'users/:id/groups/' => 'users#groups', as: "my_groups"

但是当我有条不紊地访问此路径时,在视图中,我得到一个例外:

ActionController::UrlGenerationError at /
No route matches {:controller=>"users", :action=>"groups"} missing required keys: [:id]

以下是违规行的部分内容:

<% if user_signed_in? %>
  <li id="groups-menu" class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">
       Groups <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
    #offending line:
        <li><%= link_to 'My Groups', my_groups_path %></li>
        <li><%= link_to 'Create a Group', new_group_path  %></li>
    </ul>
  </li>
  <li><%= link_to 'Logout', destroy_user_session_path, :method=>'delete' %></li>
<% else %>
  <li><%= link_to 'Login', new_user_session_path %></li>
<% end %>
<% if user_signed_in? %>
  <li><%= link_to 'Edit account', edit_user_registration_path %></li>
<% end %>
<% if user_signed_in? %>
  <% if current_user.has_role? :admin %>
    <li><%= link_to 'Admin', users_path %></li>
  <% end %>
<% end %>

似乎没有设置current_user?

目前还不清楚如果user_signed_in?方法有效,这会如何破解。

1 个答案:

答案 0 :(得分:2)

您需要将:id参数传递给url helper函数

<li><%= link_to 'My Groups', my_groups_path(current_user) %></li>