обратный вызов before_add с использованием вложенных_атрибутов
-
22-07-2019 - |
Вопрос
Учитывая следующее:
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
.
Решение
Ого, я, наверное, устал:
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)
но это тоже не работает.
Не связан с StackOverflow