鉴于以下内容:
Foo has_many :bars, :through => :baz
和
Foo accepts_nested_attributes_for :bar
我想在添加新find_or_create_by_name
时执行:bar
,但我不知道在哪里可以使用某种before_add
功能。
此问题的背景是Bar validates_uniqueness_of :name
,当我尝试创建使用现有Foo
的新Bar
时会出错。
答案 0 :(得分:1)
class Foo < ActiveRecord::Base
has_many :bars, :through => :baz, :before_add => :some_callback
def some_callback(b)
#whatnot
end
end
但是,在some_callback
部分,该怎么办?我尝试了b = Bar.find_or_create_by_name(b.name)
之类的东西,但这也不起作用。