Rails - has_and_belongs_to_many で has_many :through を使用すると、どのような効果がありますか? 以下に示すように、多対多の関係を持つ投稿とタグの 2 つのモデルがあることを検討してください。
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
私が使用する理由has_and_belongs_to_many
は、 atag
が多くの投稿に属しているためです。
Rails Associationのガイドを調べたところ、多対多の関係についてこのケースについて言及されていないことがわかりました。しかし、私はこれを試してみましたが、Rails で実行しても何の動作も得られず、私が構築した小さなテスト データベースからも正しい結果が返されpost.tags
たようでした。 tag.posts
post
tag
Post
Tag
これは正しい使用法ですか、それとも私が気付いていない副作用がありますか? また、それが正しければ、これはこれを達成するRailsの方法ですか?
ありがとう!