我需要检查多个参数的存在。
目前我写的是

if params[:p1].present? && params[:p2].present? && params[:p3].present?
  # Do something
end

有没有更有效的方法可以做到这一点?

最佳答案

您可以使用Enumerable.all?方法:

%i( p1 p2 p3 ).all? { |key| params[key].present? }

另一种选择是,如果您需要这些值,它将获取它们并检查是否存在。
params.values_at(*%i( p1 p2 p3 )).all?(&:present?)

或者
params.values_at(:p1, :p2, :p3).all?(&:present?)

关于ruby-on-rails - 检查多个参数的存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34766494/

10-11 17:26