簡體   English   中英

Ruby on Rails undefined方法`admin?' 為零:NilClass

[英]Ruby on Rails undefined method `admin?' for nil:NilClass

我正在做web以支持來賓用戶可以查看協調器列表。

如果管理員登錄並去'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>

當前錯誤:guest(hasnt login)用戶無法查看所有用戶。

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) if current_user && current_user.admin? && !current_user?(user)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM