に真です。チェック複数の条件のいずれかの場合は、私は、条件以下のルビーを持っているRubyの
ただし、常にfalseを返します。どうすれば修正できますか?
私はしたくない:あなたができる
if can? :read, :policy || can? :read, :journey || etc...
に真です。チェック複数の条件のいずれかの場合は、私は、条件以下のルビーを持っているRubyの
ただし、常にfalseを返します。どうすれば修正できますか?
私はしたくない:あなたができる
if can? :read, :policy || can? :read, :journey || etc...
は確か。
Enumerable#any?
は、あなたが探している正確に何である:
<% if %i(policy journey crash user).any? { |action| can? :read, action } %>
上記のみcan read any action
場合true
を返します。
注:%w
の代わりに%i
を使用しました。シンボルの場合は配列を返します。
OPは 'all?'の代わりに 'any? 'を見たいと思っていますが、' can? :読み込み、:policy ||できる? :読んで、:旅行||それは乾燥していないからです。 – Ilya
@Ilya良いキャッチ、thx!編集済み –
私はあなたが「できるか」の方法がわからなくてもあなたに答えることはできないと思います... – Anthony
@Anthony https://github.com/CanCanCommunity/cancancan/blob/develop/lib/cancan/ability .rb#L62 – Cameron
新しいルビーでは、 '%w(ポリシー・ジャーニー・クラッシュ・ユーザー).map(&:to_sym)'は '%i(ポリシー・ジャーニー・クラッシュ・ユーザー) 'として優れています。 –