cancan
アプリケーションで一部のページを表示したいユーザーを制限するために使用したいと考えています。
だから私はこのチュートリアルでそれをやろうとしています: http://www.roberthuberdeau.com/articles/9-Blog-tutorial-part-3
Admin と Worker の 2 つの役割があり、Tasksadmins と Workers の 2 つのコントローラーがあります。
次のことを定義したい:
1) ワーカーは、ワーカーコントローラーのすべてのものを管理および表示できます。
2) 管理者は、Tasksadminscontroller のすべてのものを管理および表示できます。
正しく定義したかどうかわかりません:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user
if user.role? :Admin
can :manage, :tasksadmins
elsif user.role? :Worker
can :manage, :workers
end
end
end
次に実装する必要がないと思うのは、「def initialize user bit はゲスト ユーザー用です」です。ユーザーに次の方法でサインインを強制します。before_filter :authenticate_user
次に、ユーザー ロールに基づいてブログ アプリケーションへのアクセスを制限します。
何をどこに書けばいいのかわからない。
例では、彼は次のように書いています。
authorize! :edit, @article
そのため、taskadmins コントローラーに次の内容を書き込もうとしました。
authorize! :edit, @tasksadmins
authorize! :new, @tasksadmins
authorize! :index, @tasksadmins
authorize! :create, @tasksadmins
authorize! :show, @tasksadmins
authorize! :destroy, @tasksadmins
しかし、私はエラーが発生しました:undefined method 'authorize!' for TasksadminsController:Class
助けてください、私は の定義の終わりにいますcancan
。