Rails:自定义错误消息以进行验证

时间:2017-10-06 23:43:24

标签: ruby-on-rails

我有一个'项目'具有两个属性的模型 - '午餐'和晚餐'这是布尔值。在我添加新项目的视图中,有一个午餐和晚餐复选框,因此用户可以选择它是哪种类型的项目。我在下面进行了验证,以确保选中这两个复选框中的至少一个。

validates :lunch, presence: { if: -> { dinner.blank? } }
validates :dinner, presence: { if: -> { lunch.blank? } }

现在,如果两者都未选中,则会显示错误消息:

"午餐不能空白" "晚餐不能空白"

我正在尝试将消息自定义为"您必须选择一顿饭"

我找到了有关错误消息的页面,但我无法弄清楚如何使其与上面的验证一起使用。

1 个答案:

答案 0 :(得分:0)

由于您需要同时检查两个列并提供自定义错误消息,因此您需要在模型中创建自己的验证:

validate :has_one_meal


def has_one_meal
  errors[:base] << "You must select at least one meal" unless (lunch || dinner)
end