我有以下Ruby条件:
<% if can? :read, %w(policy journey crash user).map(&:to_sym) %>
我要翻译为:如果用户对数组中的任何资源具有读取权限。
然而它总是返回false。我该如何解决?
我不想这样做:
if can? :read, :policy || can? :read, :journey || etc...
答案 0 :(得分:3)
当然可以。
Enumerable#any?
正是您所寻找的:
<% if %i(policy journey crash user).any? { |action| can? :read, action } %>
只有在true
。
can read any action
注意,我使用%i
代替%w
。它为您提供符号数组。