Home > Ruby on Rails > Cómo debe ser el has_one asociado a un belongs_to :polymorphic

Cómo debe ser el has_one asociado a un belongs_to :polymorphic

September 10th, 2009

Cuando se tiene un belongs_to :polymorphic y se quiere poner un has_one en el modelo asociado, se debe hacer de la siguiente forma:

1
2
3
4
5
6
7
class AtributoObjeto < ActiveRecord::Base
  belongs_to :asociado, :polymorphic => true, :dependent => :destroy
end
 
class Myfile < ActiveRecord::Base
  has_one :atributo_objeto, :as => :asociado, :dependent => :destroy
end

Es decir, si el belongs_to se llama :asociado, el has_one debe escribirse como “:as => :asociado” para que Rails sepa que en el otro lado tiene que buscar un campo “asociado_type” y un “asociado_id”, en lugar de un “atributo_objeto_id”

Categories: Ruby on Rails Tags:
Comments are closed.
Recursos Rails