def new
before_filter do
redirect_to "/" unless current_admin || current_company
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
def edit
before_filter do
redirect_to "/" unless current_admin.id = 5
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
これは私がやりたいコードですが、正しく行う方法がわかりません。私が達成したいのは、各アクションにbefore_filterルールを適用することです。したがって、おそらくユーザーはINDEXアクションにアクセスできますが、EDITアクションにはアクセスできません。before_filterメソッドは1回しか実行されず、4つのbefore_filtersを実行できないことを知っています。
Current_adminメソッドとcurrent_companyメソッドにDeviseを使用していることを知っている必要があります。さまざまなフィルター(管理者の場合、またはcompany.id = Xの場合)とその他のアクションを適用する必要があります。
事前のおかげで、私はここでかなり立ち往生しています。どんな助けでもありがたいです。
ApplicationController
メソッドで作成します。
def check_privileges!
redirect_to "/", notice: 'You dont have enough permissions to be here' unless current_admin || current_company
end
そして、あなたのコントローラーで:
before_filter :check_privileges!, only: [:new, :create, :edit, :save]
または
before_filter :check_privileges!, except: [:index, :show]