has_many: a través de has_and_belongs_to_many en Rails
In Rails: ¿cuál es el efecto de usar has_many: a través de has_and_belongs_to_many? Considere tener dos modelos: publicaciones y etiquetas que tienen una relación de muchos a muchos como se indica a continuación:
class Tag < ActiveRecord::Base
has_many :posts_tag
has_and_belongs_to_many :posts
end
class Post < ActiveRecord::Base
has_many :posts_tag
has_many :tags, :through => posts_tag
end
class PostsTag < ActiveRecord::Base
belongs_to :tag
belongs_to :post
end
La razón por la que usohas_and_belongs_to_many
es porque untag
pertenece a muchas publicaciones.
Miré en elRails Association guide y ver que no mencionan este caso para una relación de muchos a muchos. Sin embargo, probé esto y ejecutarlo en Rails no produjo ningún comportamiento y, desde la pequeña base de datos de prueba que construí, también pareció devolver los resultados correctos parapost.tags
ytag.posts
- dóndepost
ytag
se refiere a una instancia dePost
yTag
modelos respectivamente.
¿Es este el uso correcto o tiene algún efecto secundario que desconozco? Además, si es correcto, ¿es esta la forma de Rails de lograr esto?
¡Gracias