【发布时间】:2015-09-20 11:05:43
【问题描述】:
我对我的一个模型进行了以下验证。目标是验证 first_name、last_name 和 shop 的存在。然后之后(但仍然在验证之前),我想运行我的自定义验证:status。
validates_presence_of :first_name
validates_presence_of :last_name
validates_presence_of :shop
validate :status, :on => :create
def status
do stuff with first_name and last_name
end
但似乎 :status 在其他验证之前运行,所以我收到 nil first_name 等错误。我该如何纠正这个问题?
【问题讨论】:
-
为什么需要按顺序运行它们? FWIW Rails 每次都会运行所有验证,即使一个已经失败。
-
before_create 可能会对您有所帮助。