У меня есть три модели, такие как Community
, Tagging
и Tag
Сообщество belongs_to :tag
Tagging has_one :community
<= taggable_id будет идентификатором сообщества
Tagging belongs_to :tag
Тег has_many :taggings
# Тег имеет атрибут 'name'
и это мой код
@communities = Community.joins(taggings: :tag).where(tags: { name: params[:tag] }).page(params[:page]).order("cached_votes_up DESC")
Однако на странице результатов он показывает 2 из тех же записей сообщества, если у сообщества были как "APPLE", так и "apple" в тегах.
Как я могу заставить его показывать только 1 запись в результате, даже если сообщество имеет те же теги как в нижнем регистре, так и в верхнем регистре?
Я ответил на подобный вопрос. Вы один и тот же человек? В любом случае это будет работать:
@communities = Community.joins(taggings: :tag).where(['binary(tags.name) = ?', params[:tag]]).page(params[:page]).order("cached_votes_up DESC")
.group('communities.id')
после где?