Rails after_initialize solo en "nuevo"

Tengo los siguientes 2 modelos

class Sport < ActiveRecord::Base
  has_many :charts, order: "sortWeight ASC"
  has_one :product, :as => :productable
  accepts_nested_attributes_for :product, :allow_destroy => true
end

class Product < ActiveRecord::Base
  belongs_to :category
  belongs_to :productable, :polymorphic => true
end

Un deporte no puede existir sin el producto, así que en misports_controller.rb Yo tenía

def new
  @sport = Sport.new
  @sport.product = Product.new
...
end

Traté de mover la creación del producto al modelo deportivo, usandoafter_initialize:

after_initialize :create_product

def create_product
 self.product = Product.new
end

Aprendí rápidamente queafter_initializee llama a @ cada vez que se instancia un modelo (es decir, desde unfind llamada). Así que ese no era el comportamiento que estaba buscando.

Cuál es la forma en que debería modelar el requisito de que todossport tener unproduct?

Gracia

Respuestas a la pregunta(12)

Su respuesta a la pregunta