关联保存前如何保存关联信息?
How can I save association information before the association is saved?
假设一个 User
有多个 Photos
。我想像这样给每个 photo
命名:
def safe_name
self.name = "#{user.code}#{user.photos.count + 1}"
end
并在保存关联时验证此名称。我可以在 after_save
中调用该方法并让它工作,但照片的名称不能事先为空。如何在照片保存之前抓取它才有效?
如果您需要操作数据然后验证它,您可以使用 Active Record 回调 before_validation。这将修改名称,然后调用您的验证器。
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
您可以使用 before_validation
回调
假设一个 User
有多个 Photos
。我想像这样给每个 photo
命名:
def safe_name
self.name = "#{user.code}#{user.photos.count + 1}"
end
并在保存关联时验证此名称。我可以在 after_save
中调用该方法并让它工作,但照片的名称不能事先为空。如何在照片保存之前抓取它才有效?
如果您需要操作数据然后验证它,您可以使用 Active Record 回调 before_validation。这将修改名称,然后调用您的验证器。
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
您可以使用 before_validation
回调