pra*_*esh 6 ruby ruby-on-rails
我需要检查多个参数的存在.目前我写的是
if params[:p1].present? && params[:p2].present? && params[:p3].present?
# Do something
end
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法来做到这一点?
Sim*_*tti 15
您可以使用以下Enumerable.all?方法:
%i( p1 p2 p3 ).all? { |key| params[key].present? }
Run Code Online (Sandbox Code Playgroud)
另一种选择,如果你需要值,它可以获取它们并检查存在.
params.values_at(*%i( p1 p2 p3 )).all?(&:present?)
Run Code Online (Sandbox Code Playgroud)
要么
params.values_at(:p1, :p2, :p3).all?(&:present?)
Run Code Online (Sandbox Code Playgroud)