我有一个范围
范围:with_tags,lambda {| tag | joins(:tags).where('tags.name in(?)',tag)}#Questionnaire.with_tags([“Restaurants”,“Real State”])
Questionnaire.with_tags([“餐厅”,“真实状态”])。to_sql
=> “SELECT questionnaires
。* FROM questionnaires
INNER JOIN quest_tags
ON questionnaires
。id
= quest_tags
。questionnaire_id
INNER JOIN {{ 1}} ON tags
。tags
= id
。quest_tags
WHERE(tags.name in('Restaurants','Real State'))“
我需要的是什么
“选择 DISTINCT tag_id
。*来自questionnaires
INNER JOIN questionnaires
ON quest_tags
。questionnaires
= id
。{ {1}} INNER JOIN quest_tags
ON questionnaire_id
。tags
= tags
。id
WHERE(tags.name in('Restaurants','Real State' ))“
我需要对我的范围做什么才能在选择中获得 DISTINCT ?
答案 0 :(得分:1)
范围:with_tags,lambda {| tag | joins(:tags).where('tags.name in(?)',tag).group('questionnaires.id')}