我的模型中的自定义验证与此非常相似:
并且提供的解决方案正常工作:
errors.add(:base, 'Start date must be before stop date') if self.start > self.stop
使用:base
只会导致1个错误,这很好,因为我不想在这里显示相同的两个错误。但是,没有突出显示任何字段,我也需要突出显示:start
和:stop
字段,就像我在:start
中使用:stop
或errors.add
一样。< / p>
我该怎么做?
答案 0 :(得分:0)
您应该利用Rails内置机制:它们包含包含div
field_with_error
类错误的表单字段。
如果这不适合您:
自定义它,see Railscast
更多手动解决方案,检查您的实例所承担的错误并采取相应措施,即@instance.errors.include? :filed_name
。在此范围内,请勿将所有错误添加到base