Frage

Bei den folgenden:

Foo has_many :bars, :through => :baz

und

Foo accepts_nested_attributes_for :bar

Ich möchte ein find_or_create_by_name tun, wenn ich einen neuen :bar hinzufügen, aber ich weiß nicht, wo ich eine Art before_add Funktionalität haben kann.

Der Hintergrund dieser Frage ist Bar validates_uniqueness_of :name, die Fehler gibt, wenn ich versuche, einen neuen Foo zu erstellen, die eine vorhandene Bar verwendet wird.

War es hilfreich?

Lösung

Wow Ich muss müde sein:

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

  def some_callback(b)
    #whatnot
  end
end

Aber noch im some_callback Teil, was zu tun ist? Ich habe versucht, Dinge wie b = Bar.find_or_create_by_name(b.name) aber das funktioniert auch nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top