обратный вызов before_add с использованием вложенных_атрибутов

StackOverflow https://stackoverflow.com/questions/1446610

  •  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) но это тоже не работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top