关联保存前如何保存关联信息?

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 回调