ruby-on-rails - 检查多个参数的存在

标签 ruby-on-rails ruby

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

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/

相关文章:

ruby-on-rails - rails 3 中的拉/推状态

ruby-on-rails - DatabaseCleaner 似乎不会在诉讼之间清理

ruby-on-rails - Rails是黑匣子吗?

ruby-on-rails - ruby rails : get collection of attributes for a model

ruby-on-rails - 验证两个表的唯一性

ruby - 将 URL 和 @* 转换为链接

ruby - 修复 Ubuntu 下的 pry

mysql - 在 Ruby 中使用 Mysql gem 运行脚本(多个语句)

ruby-on-rails - rails 自定义验证器 - 添加到模型或 Controller 中的错误?

ruby-on-rails - Mongoid 中具有 Belongs_to 关联的嵌入文档