ruby-on-rails - 如何在 ruby​​ 测试中写出三个变量中至少有一个为空?

标签 ruby-on-rails ruby algorithm variables if-statement

我有这个验证:

if self.var_a.blank? || self.var_b.blank? || self.var_c.blank?
  self.errors[:base] << "Error." 
end

如果三个变量都设置了或者三个都没有设置,一切都ok。 但是,如果设置了这 3 个中的一个或 2 of 3,我需要显示错误。

我有一段时间在为这个问题而苦恼,但无法有效地写出来。

最佳答案

if [var_a,var_b,var_c].any?{|m| m.blank?}
  self.errors[:base] << "Error." 
end

self.errors[:base] << "Error." if [var_a,var_b,var_c].any?(&:blank?)

关于ruby-on-rails - 如何在 ruby​​ 测试中写出三个变量中至少有一个为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987087/

相关文章:

ruby - 为什么保存在这里失败,SQLite3::ConstraintException: column user_id is not unique: INSERT INTO "pins"?

algorithm - 算法简介(第 1-1 章)

ruby-on-rails - Rails 4处理语言环境错误页面

ruby-on-rails - ActiveJob 和 Sidekiq 作业卡在队列中

ruby-on-rails - RSpec 故事和规范 : When to use what?

ruby-on-rails - Ruby 多个 group_by 或 map

algorithm - 多个语句的 Big-O 表示法

javascript - 将 CSS 样式(或类)添加到组件中 React 对象数组的每个元素

ruby-on-rails - VCR+rspec 元数据 : how to use inferred cassette name like use_vcr_cassette

ruby-on-rails - 如何使用 Rails check_box 表单助手保存 'Yes' 或 'No' 而不是 'true' 或 'false'?