我正在尝试验证表单中至少有一个复选框已被选中,但它目前无法正常工作。
这就是我的控制器的样子:
class UserExpertise < ActiveRecord::Base
belongs_to :user
validate :atleast_one_is_checked
def atleast_one_is_checked
errors.add(:base, "Select at least one expertise") unless :gardening || :cooking || :cleaning || :washing_up
end
end
但是,如果没有选择任何错误,则不会显示错误。顺便提一下,如果我要删除代码的“除非”部分,如下所示,无论选择了多少或几个,都会一直显示错误。
def atleast_one_is_checked
errors.add(:base, "Select at least one expertise")
end
end
我无法验证是否已选择至少一个复选框,因为上述似乎不起作用。任何帮助,将不胜感激!
答案 0 :(得分:1)
:gardening
,:cooking
,:cleaning
和:washing_up
在这里是符号,它们被条件语句视为true
值。使用与属性相关的方法,只需:
def atleast_one_is_checked
errors.add(:base, "Select at least one expertise") unless gardening || cooking || cleaning || washing_up
end