1

私はカンカンの宝石で許可を取ります。

「CANCAN」で2つのモデルの権限を管理するにはどうすればよいですか?

ありがとう

==================================

私がすることができます ????

class Ability

  include CanCan::Ability

  def initialize(user)
   # code
  end

  def initialize(accounts)
     #code  
  end
end
4

2 に答える 2

4
class ApplicationHelper
  def current_auth_resource
    if admin_signed_in?
      current_admin
    else
      current_user
    end
  end

  def current_ability
      @current_ability or @current_ability = Ability.new(current_auth_resource)
  end
end

class ApplicationController
  include ApplicationHelper
end

class Ability
  include CanCan::Ability

  def initialize(user)      
    if user.is_a?(Admin)
      # add admin permissions only
    elsif user.is_a?(User)
      # add user permissions only
    else
      # add guest permissions only
    end
  end
end

これを確認してください

于 2013-11-13T08:51:10.867 に答える
2

特定のユーザーが操作およびアクションを実行できるモデルをability.rbファイルで指定する必要があります。

class Ability
  include CanCan::Ability

  # usual setup
  def initialize(user)
    user ||= User.new

    if user.has_role? :admin
      can :manage, :all
    end

    if user.has_role? :less_important_role
      can [:read, :update], Model1
      can :manage, Model2
    end
  end
end

能力の定義について詳しくは、ドキュメントをご覧ください。

于 2013-03-12T00:40:30.790 に答える