我有三个模型,如Community
、Tagging
和Tag
-
社区
belongs_to :tag
-
标记
has_one :community
<= taggable_id将是社区的 ID -
标记
belongs_to :tag
-
标签
has_many :taggings
# 标签具有"名称"属性
,我如何编写SQL代码来获取所有带有参数[:标签]标记的社区?
您应该能够看到尝试时生成的确切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] } })