Dans Rails - quel est l'effet de l'utilisation has_many: à travers avec has_and_belongs_to_many? Envisager d'avoir deux modèles - comme indiqué ci-dessous et les balises qui messages ont plusieurs-à-plusieurs:has_many: à travers avec has_and_belongs_to_many dans Rails
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 raison pour laquelle j'utilise has_and_belongs_to_many
est parce qu'un tag
appartient à de nombreux postes.
J'ai regardé dans le Rails Association guide et de voir qu'ils ne mentionnent pas ce cas pour une relation many-to-many. J'ai, cependant, essayé ceci et l'exécutant dans Rails n'a donné aucun comportement et de la petite base de données de test que j'ai construite, a également semblé renvoyer les résultats corrects pour post.tags
et tag.posts
- où post
et tag
se rapportent à une instance du Modèles Post
et Tag
respectivement.
Est-ce que c'est l'utilisation correcte ou est-ce que j'ai des effets secondaires dont je ne suis pas au courant? Aussi, si c'est correct, est-ce la façon Rails d'y parvenir?
Merci!
Oui, je pense que la partie où vous avez dit "Rails ne peut pas toujours correspondre parfaitement à la langue anglaise" est ce que je recherchais vraiment: P Étant donné que certaines opérations communes fonctionnaient avec un 'has_many: through' et' has_and_belongs_to_many', D'un point de vue purement pédagogique, il serait intéressant de savoir si cela a des effets secondaires. Je comprends que ce n'est pas la bonne façon de l'utiliser. –
Regardez la mise à jour. –
Merci! Ça a du sens :) –