🖥
Ruby | cancan でコンディションを与えた後に can? と聞く方法
検証
初期状態では何も権限を与えていないので false が返る
can? :read, SomeClass
# => false
id: 1
に対して権限を与えてやる
condition を指定して can :read, SomeClass, id: 1
SomeClass クラスへの問いかけで true が返るようになる
can? :read, SomeClass
# => true
理由はこちらを参照: https://github.com/ryanb/cancan/wiki/Checking-Abilities
だが can と同じ文法ではコンディションを指定して can? 出来ない ( condition指定は無視されている様子 )
can? :read, SomeClass, id: 1
# => true
can? :read, SomeClass, id: 2
# => true
condition に対して can? と聞くには 、SomeClass のインスタンスを与えてやる
id: 1
でだけ true が返るのが分かる。
can? :read, SomeClass.new(id: 1)
# => true
can? :read, SomeClass.new(id: 2)
# => false
環境
- cancancan (1.15.0)
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2017-09-07
Discussion