before_add retorno de chamada usando nested_attributes
-
22-07-2019 - |
Pergunta
Dado o seguinte:
Foo has_many :bars, :through => :baz
e
Foo accepts_nested_attributes_for :bar
Eu quero fazer um find_or_create_by_name
quando eu adicionar um novo :bar
, mas eu não sei onde eu possa ter algum tipo de funcionalidade before_add
.
O fundo desta questão é Bar validates_uniqueness_of :name
, o que dá erros quando eu tento criar uma nova Foo
que está usando um Bar
existente.
Solução
Wow I deve estar cansado:
class Foo < ActiveRecord::Base
has_many :bars, :through => :baz, :before_add => :some_callback
def some_callback(b)
#whatnot
end
end
Mas ainda assim, na parte some_callback
, o que fazer? Eu tentei coisas como b = Bar.find_or_create_by_name(b.name)
mas isso não quer trabalhar.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow