基本的にタグ付きのブログとして機能する Rails 3.2 アプリに取り組んでいます。
タグは has_many :through 関連付けの投稿に関連付けられています。(投稿にはtaggignsを介して多くのタグがあります)同じように機能するため、アプリにhabtm関連付けがない理由はわかりませんが、それは私が持っているものです.
アプリは、次のようなタグに属する投稿のリストを表示できるようになりました:
class TagsController < ApplicationController
def show
@tag = Tag.find(params[:id])
@posts = @tag.posts.paginate(page: params[:page], :per_page => 10)
end
...
end
このように、ページ example.com/tags/1 には、ID 1 に一致するタグを持つすべての投稿が表示されます。
私がしなければならないことは、タグのチェックボックスを持ち、たとえばタグ 1 と 4 の両方を持つ投稿に検索を制限するようにこのアプリを変更することです。
どこから始めるべきか、または探すべきリソースについて、誰かが私に情報を提供してもらえますか? 結合を使用する必要があると思いますが、そうであるかどうかはわかりません。
ありがとうございました。
========
編集:回答ありがとうございます。とにかく、ok32 で示唆されているように、user1083138 のソリューションは重複を作成していました。同時に、ok32 のものは空の配列になりました (おそらく、タグ付けシステムの実装が不十分なためです)。
私はうまく機能するこのソリューションを考え出しました:
def self.tag_query(list)
Post.joins(:tags).where(:tags => { :name => list } ).having("count(tags.name) = ?", list.count ).group('posts.id')
end