2016-11-11 5 views
1

ActiveAdminを使用してCanCanCanを設定するには、助けが必要です。私は工夫を含めて他のすべてが働いています。私はdeviseを使ってメニューを制限することができますが、URLが編集のために言うことを知っていれば、そのリソースを編集することができます。私は通常のユーザーが編集/リソースの作成を制限したいが、それはうまくいかないようだ。ActiveAdminでCanCanCanを設定する際に助けが必要

Active_Admin.rb

config.cancan_ability_class = ActiveAdmin::CanCanAdapter 

Ability.rb(箱のうち、単純な)

class Ability 
    include CanCan::Ability 

    def initialize(user) 
    # Define abilities for the passed in user here. For example: 
    # 
     # user ||= User.new # guest user (not logged in) 
     if user.admin? 
     can :manage, Student 
     else 
     can :read, Student 
     end 
end 
end 

Userモデル。

admin:boolean 

と私は私はまだ/編集/削除を作成することができます管理者でないユーザーでログインすれば、私は読み取り専用にそれらを制限したいです。

私が完了する必要があるこの機能に苦労しているのを助けてください。これは考えて

答えて

3

変更事前に

ありがとう:

config.authorization_adapter = ActiveAdmin::CanCanAdapter 
config.cancan_ability_class = Ability 

authorization_adapterは、それが使用する必要がありますアダプター、アクティブな管理を伝えます。 cancan_ability_classは、使用するクラスをアダプタに指示します。

まだ動作しない場合は、AbilityからAdminAbilityに名前を変更してください。

+1

お返事ありがとうございます。私は能力クラスを追加しましたが、今は永遠のループに入り、ローカルホストは起動していないと言います。 また、クラスをAdminAbilityに変更しましたが、サーバーの起動時に初期化されていない定数AdminAbility(NameError)が表示されます – Waqas

+0

私はそれをもっと使い果たした後にお知らせします。ちょうど白いページを取得し、ログをチェックしたときにこのページのパーミッションがないと言いましたが、ループだと思っていましたが、それはありませんでした。ありがとう – Waqas

関連する問題