我有三个模型,例如Community
,Tagging
和Tag
社区belongs_to :tag
标记has_one :community
< = taggable_id将为社区ID
标记belongs_to :tag
标记has_many :taggings
#Tagg具有'name'属性
这是我的代码
@communities = Community.joins(taggings: :tag).where(tags: { name: params[:tag] }).page(params[:page]).order("cached_votes_up DESC")
但是,在结果页面中,如果社区在标签中同时包含“APPLE”和“apple”,则会显示2个相同的社区记录。
即使社区在小写字母和大写字母中都有相同的标记,我怎样才能让它只显示结果中的1条记录?
答案 0 :(得分:1)
我回答了类似的问题。你是同一个人吗?无论如何,这将有效:
@communities = Community.joins(taggings: :tag).where(['binary(tags.name) = ?', params[:tag]]).page(params[:page]).order("cached_votes_up DESC")