2017-03-07 3 views
0

に真です。チェック複数の条件のいずれかの場合は、私は、条件以下のルビーを持っているRubyの

ただし、常にfalseを返します。どうすれば修正できますか?

私はしたくない:あなたができる

if can? :read, :policy || can? :read, :journey || etc... 
+0

私はあなたが「できるか」の方法がわからなくてもあなたに答えることはできないと思います... – Anthony

+0

@Anthony https://github.com/CanCanCommunity/cancancan/blob/develop/lib/cancan/ability .rb#L62 – Cameron

+1

新しいルビーでは、 '%w(ポリシー・ジャーニー・クラッシュ・ユーザー).map(&:to_sym)'は '%i(ポリシー・ジャーニー・クラッシュ・ユーザー) 'として優れています。 –

答えて

1

は確か。

Enumerable#any?は、あなたが探している正確に何である:

<% if %i(policy journey crash user).any? { |action| can? :read, action } %> 

上記のみcan read any action場合trueを返します。

注:%wの代わりに%iを使用しました。シンボルの場合は配列を返します。

+0

OPは 'all?'の代わりに 'any? 'を見たいと思っていますが、' can? :読み込み、:policy ||できる? :読んで、:旅行||それは乾燥していないからです。 – Ilya

+0

@Ilya良いキャッチ、thx!編集済み –

関連する問題