Pregunta

Dado lo siguiente:

Foo has_many: bars,: through = > : baz

y

Foo accept_nested_attributes_for: bar

Quiero hacer un find_or_create_by_name cuando agrego un nuevo : bar , pero no sé dónde puedo tener algún tipo de before_add funcionalidad.

El fondo de esta pregunta es Bar validates_uniqueness_of: name , que genera errores cuando intento crear un nuevo Foo que está usando una barra existente .

¿Fue útil?

Solución

Wow, debo estar cansado:

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

  def some_callback(b)
    #whatnot
  end
end

Pero aún así, en la parte some_callback , ¿qué hacer? He intentado cosas como b = Bar.find_or_create_by_name (b.name) pero eso tampoco funciona.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top