Ruby on Rails undefined 方法 'admin?' for nil:NilClass



我正在做网络以支持来宾用户可以查看协调列表。

如果admin登录并GO'user_path'。管理员可以看到所有协调员并能够删除它们。

如果来宾查看所有用户。客人可以看到所有协调员,但无法删除它们。

_footer.html.erb

 <div class="footer-inquires"> 
    <div class="col-xs-6 col-md-3">
    <h5>General inquires</h5>
    <ul class="footer-links">
      <% User.all.each do |user| %>
        <li><%= link_to user.fname, user_path(user.id) %></li>  
      <% end %>
        <li><%= link_to "All", users_path %></li>
    </ul>  
  </div>

index.html.erb

<% provide(:title, 'All Coordinator | Course App') %>
<h1>All Coordinator</h1>
<%= will_paginate %>
<ul class="users">
  <%= render @users %>
</ul>
<%= will_paginate %>

_user.html.erb

<li>
  <%= gravatar_for user, size: 50 %>
  <%= link_to user.fname, user %>
  <% if current_user.admin? && !current_user?(user) %>
    | <%= link_to "delete", user, method: :delete,
                                  data: { confirm: "You sure?" } %>
  <%else%>
************************
what do i do  for else ?
***********************
  <% end %>
</li>

当前错误:访客(Havent登录(用户无法查看所有用户。

Showing /home/ec2-user/environment/course_app/app/views/users/_user.html.erb where line #4 raised:
undefined method `admin?' for nil:NilClass

 <%= gravatar_for user, size: 50 %>
  <%= link_to user.fname, user %>
  <% if current_user.admin? && !current_user?(user) %>
    | <%= link_to "delete", user, method: :delete,
                                  data: { confirm: "You sure to delete?" } %>

在此处输入图像描述

您可以将条件更改为if current_user && current_user.admin? && !current_user?(user)

相关内容

最新更新