I have the following Ruby conditional:
<% if can? :read, %w(policy journey crash user).map(&:to_sym) %>
Which I want to translate to: if the user has read permissions for any of the resources in the array.
However it always returns false. How can I fix it?
I don't want to do:
if can? :read, :policy || can? :read, :journey || etc...
Sure you can.
Enumerable#
any?
is exactly what you're looking for:The above will return
true
only ifcan read any action
.Note, I used
%i
instead of%w
. It gives you array of symbols.