簡體   English   中英

康康(cancan)和rails_admin與devise的問題

[英]Issues with Cancan and rails_admin with devise

因此,我使用devise和cancan設置了rails_admin,以便只有管理員才能訪問/ admin頁面。

但是,當試圖僅使用<% if user_admin? %>向管理員顯示某些代碼時<% if user_admin? %> <% if user_admin? %>我得到undefined method user_admin?

能力

Ability類包括CanCan :: Ability

  def initialize(user)
      user ||= User.new # guest user (not logged in)
      if user.admin?
        can :manage, :all
        can :access, :rails_admin #grant access to rails_admin
        can :dashboard #gives access to the dashboard

      else
        can :read, :all
      end
  end
end

_header.html.erb

 <% if user_admin? %>
 <li><%= link_to 'Settings', edit_user_registration_path %></li>
 <li><%= link_to 'Logout', destroy_user_session_path, method: :delete %></li>
 <% else %>
 <li><%= link_to "Create Account", new_user_registration_path %></li>
 <li><%= link_to "Login", new_user_session_path %></li>
 <% end %>

我需要在能力.rb中設置能力

class Ability
  include CanCan::Ability

  def initialize(user)
      user ||= User.new # guest user (not logged in)
      if user.admin?
        can :manage, :all
        can :access, :rails_admin #grant access to rails_admin
        can :dashboard #gives access to the dashboard

      else
        can :read, :all
      end
  end
end

然后就可以打電話了

  <% if can? :access, :rails_admin %>
  <li><%= link_to 'Admin', rails_admin_path %></li>
  <% end %>

我現在可以做嗎? 我想授權的任何東西。

暫無
暫無

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

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