2009-09-18 8 views
1

Soit:rappel before_add utilisant nested_attributes

Foo has_many :bars, :through => :baz

et

Foo accepts_nested_attributes_for :bar

Je veux faire un find_or_create_by_name quand j'ajoute une nouvelle :bar, mais je ne sais pas où Je peux avoir une sorte de fonctionnalité before_add.

L'arrière-plan de cette question est Bar validates_uniqueness_of :name, ce qui donne des erreurs lorsque j'essaie de créer un nouveau Foo qui utilise un Bar existant.

Répondre

1

Wow je dois être fatigué:

class Foo < ActiveRecord::Base 
    has_many :bars, :through => :baz, :before_add => :some_callback 

    def some_callback(b) 
    #whatnot 
    end 
end 

Mais encore, dans la partie some_callback, ce qu'il faut faire? J'ai essayé des choses comme b = Bar.find_or_create_by_name(b.name) mais ça ne marche pas non plus.