我有一个'项目'具有两个属性的模型 - '午餐'和晚餐'这是布尔值。在我添加新项目的视图中,有一个午餐和晚餐复选框,因此用户可以选择它是哪种类型的项目。我在下面进行了验证,以确保选中这两个复选框中的至少一个。
validates :lunch, presence: { if: -> { dinner.blank? } }
validates :dinner, presence: { if: -> { lunch.blank? } }
现在,如果两者都未选中,则会显示错误消息:
"午餐不能空白" "晚餐不能空白"
我正在尝试将消息自定义为"您必须选择一顿饭"
我找到了有关错误消息的页面,但我无法弄清楚如何使其与上面的验证一起使用。
答案 0 :(得分:0)
由于您需要同时检查两个列并提供自定义错误消息,因此您需要在模型中创建自己的验证:
validate :has_one_meal
def has_one_meal
errors[:base] << "You must select at least one meal" unless (lunch || dinner)
end