0

CommunityTagging、などの 3 つのモデルがあります。Tag

  • コミュニティbelongs_to :tag

  • タグ付けhas_one :community<= taggable_id はコミュニティの ID になります

  • タグ付けbelongs_to :tag

  • タグhas_many :taggings# タグには「名前」属性があります

この状況で、params[:tag] がある場合、params[:tag] でタグ付けされたすべてのコミュニティを取得する SQL コードをどのように記述すればよいでしょうか?

4

1 に答える 1

1

試したときに生成された正確なSQLを確認できるはずです

 Community.find_tagged_with(params[:tag])

ただし、次を使用して自分でクエリを作成することもできます

 # Rails 3
 Community.joins(taggings: :tag).where(tags: { name: params[:tag] })

 # Rails 2
 Community.all(joins: { taggings: :tag }, conditions: { tags: { name: params[:tag] } })
于 2013-01-30T15:48:49.097 に答える