before_add Rückruf nested_attributes mit
-
22-07-2019 - |
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.
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