使用nested_attributes进行before_add回调

时间:2009-09-18 20:14:28

标签: ruby-on-rails nested-attributes

鉴于以下内容:

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时会出错。

1 个答案:

答案 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)之类的东西,但这也不起作用。