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

Respuestas a la pregunta(4)

Su respuesta a la pregunta