这似乎是has_many和has_one之间的不一致。
has_many关联允许您指定在将对象添加到集合后调用的after_add回调。
class Person
has_many :parents, :after_add => { puts "Added new parent" } # allowed
has_one :car, :after_add => { puts "Added car" } # not allowed
end
class Car
after_create :assign_name
def assign_name
self.name = "Herbie"
end
end
不幸的是,has_one关联没有after_add回调。你如何为has_one实现同样的目标?
答案 0 :(得分:1)
我认为您可以使用before_save,并检查汽车关系是否已更改:
before_save :do_something
def do_something
puts "Added car" if car_changed?
end