我看到模型中使用自定义验证器(好),但我也看到验证器本身添加到记录错误对象。
例如我看到 (例如改变)rails自定义验证器 - 添加到模型或控制器中的错误?
class Title < ActiveRecord::Base
# implement the method called during validation
def validate_each(record, attribute, value)
record.errors[attribute] << 'must be Mr/Mrs/Dr.' unless ['Mr.', 'Mrs.', 'Dr.'].include?(value)
end
end
这感觉有点像应该在控制器中正在做的和验证应该只是返回true
/false
但也许不是一个国家的事情。
如果你有一个'has_many'关系,你想限制为一个,为什么不用'has_one'来代替? – Frost
我相信这是代码从另一个问题复制@迈克尔回答:http://stackoverflow.com/questions/8169589/rails-3-1-limit-the-number-of-child-models –
彻底改变了这个例子: ) –