railsでcancancan
を使用してます。
controllerとviewにロジックが多いのを避けたく、OrganizationPresenters::ShowPresenter
というpresenter階
を作り、そこでcan?メソッドを使いたいですが、方法がわからず質問いたします。
(controller,view以外でcan?メソッドを使うとundefined variableエラーが出ます。)
controllerコード
ruby
1 def show 2 @items = OrganizationPresenters::ShowPresenter.new(@organization) 3 authorize! :org_show, @organization 4 binding.pry 5 rescue CanCan::AccessDenied => e 6 render_403 7 end
presenter class new時にcan?メソッドを渡せないか試してみましたが、だめでした。
OrganizationPresenters::ShowPresenter.new(@organization,can?)
結果:
ArgumentError - wrong number of arguments (given 0, expected 2+):
エラーが発生
他にcontroller,view以外でcan?メソッドを使う方法がありましたら教えていただけますでしょうか。
後、ruby文法でcan?メソッドが定義されてるコードのパスを特定する方法がありましたら教えていただきたいです!
よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/06 08:57