我看到模型中使用自定義驗證器(好),但我也看到驗證器本身添加到記錄錯誤對象。
例如我看到 (例如改變)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 –
徹底改變了這個例子: ) –