私は次のモデルがあります:3つのタグを持つアクティビティをクエリするにはどうすればよいですか?
activity.rb
tag.rb
tagging.rb
タグ付けは、活動やタグのモデルに参加しています。
2つ以上のタグを持つアクティビティを検索したいと思います。これをレールでどうやって行うのですか?例えば
:
私が持っているTAG1 =クリスマス、TAG2 =フロリダ、TAG3 =ジョン
私はそれが存在する場合TAG1、TAG2とTAG3が存在している活動を見つけたいです。
私がやってしまった何[EDIT]
:
tags = [tag1, tag2, tag3]
activities = []
tags.each do |tag|
activities << tag.activities
end
activities.flatten.group_by { |activity| activity.id }
グループ値サイズのいずれかが、その活動は、すべてのタグが含まれ、その後tags.sizeに等しい場合。
'activities'テーブルに' tags_count'フィールドを追加し、 'Activity.where(" tags_count> = 2 ")' –
のようなクエリは、タグ数が2以上のアクティビティ特定の仲間を検索する –
ちょっと、ちょっと!私の答えをチェックしていただけますか? –