私はこのようなことをするメソッドを持っています:
before_filter :authenticate_rights, :only => [:show]
def authenticate_rights
project = Project.find(params[:id])
redirect_to signin_path unless project.hidden
end
他のいくつかのコントローラーでもこのメソッドを使用したいので、application_controllerに含まれているヘルパーにメソッドをコピーしました。
問題は、一部のコントローラーでは、プロジェクトのIDが:id
シンボルではなく、feである:project_id
(および:id
(別のモデルの場合)aも存在する)ことです。
この問題をどのように解決しますか?before_filterアクションにパラメーターを追加する(正しいパラメーターを渡すための)オプションはありますか?
,:only => [:show]
シンボルを追加する方法はありますか?試行中にエラーが発生しましたbefore_filter { |c| c.authenticate_rights correct_id_here }, :only => [:show]