0

以下のリンクを使用して、active_adminでcancanを実装しました。 https://github.com/gregbell/active_admin/wiki/How-to-work-with-cancan

私の場合、唯一の変更は書かれたコードの下にあります。app / models /ability.rb

class Ability
  include CanCan::Ability

  def initialize(user)

    user ||= AdminUser.new # guest user (not logged in)

    if user.id == 1  
      can :manage, :all      
      puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> manage all"
    else
      can :read, :all
      puts ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> read all"
    end
  end
end

今のところ、user.idに条件を設定するだけです。したがって、アプリケーションを実行すると、プットが正しくログインしていることがわかります。

質問:

  • したがって、user whos user.id!= 1でログインすると、active_adminですべてのモジュールを管理することもできます。カンカンの能力が私のために働いていません。

(要するに、私の缶:コードはどのような状態でも機能していません)

レール3.1.1、cancan 1.6.7、activeadmin 0.4.4、ruby1.9.3を使用

リンク内のコマンドを正しく実行し、再確認しました。

AdminUserでauthorize_resourceを使用しました。

考案されていないソーサリーを使用して、このことはカンカンに影響を与えますか?

4

1 に答える 1

1

/adminのすべてのモデルのコードで次のように記述します

その後、能力モデルの私の条件が機能し始めます。

  menu :if => proc{ can?(:manage, #ModelName) }     
  controller.authorize_resource 

この質問を投稿する前に、私は管理者ユーザーでのみ上記のコードを書きました

于 2012-05-30T04:09:08.263 に答える