0

我有三个模型,例如Community,TaggingTag

  • 社区belongs_to :tag

  • 标记has_one :community<= taggable_id 将是社区的 id

  • 标记belongs_to :tag

  • Tag has_many :taggings# Tag 有 'name' 属性

在这种情况下,如果我有 params[:tag],我如何编写 SQL 代码来获取所有带有 params[:tag] 标记的社区?

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 回答