CanCanが好きなら、それを使用するのが最善だと思います。あなたは本当に、本当にこのようなシステムを自分で実装する場合
https://github.com/ryanb/cancan/wiki/Abilities-in-Database
:ここではとても非プログラマはそれらを更新することができ、データベース内の能力を格納についての短いチュートリアルです。あなたのニーズに応じて、できるだけ簡単に実装することをお勧めします。
ユーザのみがモジュール(特定のコントローラ)にアクセスする必要がある場合。あなたは行うことができます。
1)は、単にシリアル化されたフィールドのように、すべてのユーザーの権限を保存 - >http://apidock.com/rails/ActiveRecord/Base/serialize/class
class User
serialize :permissions, Array
def access_to?(module)
permissions.include? module.to_s
end
end
いくつかのチェックをいいだろう、このフィールドを設定するとき。
2)現在のユーザーが、このコントローラ(セクションへのアクセス権を持っている場合だけで、これはあなたが簡単に進化させることができ、そこから、ちょうど開始位置である)もちろん
class ApplicationController
private
def self.require_access_to(module)
before_filter do |c|
unless c.send(:current_user).try :access_to?(module)
c.send :render_no_presmissions_page
end
end
endposible
end
class AdminNewsController
require_access_to :news
end
をすべてのコントローラの上のチェックを行います。