Postgresql を使用した Rails の非常に単純なタグ モデルがあります。
class Tag < ActiveRecord::Base
has_many :taggings
has_many :posts, :through => :taggings,
:source => :tagged, :source_type => 'Post'
end
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :tagged, :polymorphic => true
end
class Post < ActiveRecord::Base
has_many :taggings, :as => :tagged
has_many :tags, :through => :taggings
end
指定したタグが 2 つ以上あるすべての投稿を簡単に見つける方法はありますか? 例えば、「スタイル」「メンズ」「ウィメンズ」「セール」のタグがあるとします。タグの配列を受け取る一般的な検索ステートメントを作成したいと思います。したがって、入力が ["style"] の場合、そのタグを持つすべての投稿を返す必要があります (簡単)。入力が ["style", "men"] の場合は、タグ "style" AND " を持つすべての投稿を返す必要があります。男性」。