ruby on rails - validaciones - Asociación polimórfica con múltiples asociaciones en el mismo modelo
validaciones rails (2)
Estoy un poco confundido acerca de una asociación polimórfica que tengo. Necesito un modelo de artículo para tener una imagen de encabezado y muchas imágenes, pero quiero tener un solo modelo de imagen. Para hacer las cosas aún más confusas, el modelo de la imagen es polimórfico (para permitir que otros recursos tengan muchas imágenes).
Estoy usando esta asociación en mi modelo de artículo:
class Article < ActiveRecord::Base
has_one :header_image, :as => :imageable
has_many :images, :as => :imageable
end
es posible? Gracias.
Sí. Eso es totalmente posible.
Es posible que deba especificar el nombre de la clase para header_image
, ya que no se puede inferir. Include :dependent => :destroy
too, para garantizar que las imágenes se destruyan si se elimina el artículo
class Article < ActiveRecord::Base
has_one :header_image, :as => :imageable, :class_name => ''Image'', :dependent => :destroy
has_many :images, :as => :imageable, :dependent => :destroy
end
luego en el otro extremo ...
class Image < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end
Intenté esto, pero luego header_image devuelve una de las imágenes. Simplemente porque la tabla de imágenes no especifica un tipo de uso de imagen diferente (header_image vs. image normal). Simplemente dice: imageable_type = Imagen para ambos usos. Entonces, si no hay información almacenada sobre el tipo de uso, ActiveRecord no puede diferenciar.