检查 Ruby 中是否有多个条件为真
Check if any of multiple conditions are true in Ruby
我有以下 Ruby 条件:
<% if can? :read, %w(policy journey crash user).map(&:to_sym) %>
我想翻译成:如果用户对数组中的任何资源具有读取权限。
然而它总是 returns 错误。我该如何解决?
我不想做:
if can? :read, :policy || can? :read, :journey || etc...
当然可以。
Enumerable#any?
正是您要找的:
<% if %i(policy journey crash user).any? { |action| can? :read, action } %>
以上将 return true
只有 can read any action
.
请注意,我使用 %i
而不是 %w
。它为您提供符号数组。
我有以下 Ruby 条件:
<% if can? :read, %w(policy journey crash user).map(&:to_sym) %>
我想翻译成:如果用户对数组中的任何资源具有读取权限。
然而它总是 returns 错误。我该如何解决?
我不想做:
if can? :read, :policy || can? :read, :journey || etc...
当然可以。
Enumerable#any?
正是您要找的:
<% if %i(policy journey crash user).any? { |action| can? :read, action } %>
以上将 return true
只有 can read any action
.
请注意,我使用 %i
而不是 %w
。它为您提供符号数组。