0

「apple」と「APPLE」の両方のタグを持つコミュニティがあるとします。

次に、これをパラメータ「apple」で実行すると

@communities = Community.joins(taggings: :tag).where(tags: { name: params[:tag] })

結果ページに、同じコミュニティが 2 セット表示されます。
おそらく、大文字と小文字の両方の params[:tag] でフェッチしているためです。

likeこれを厳密にして検索しないようにするにはどうすればよいですか? 大文字と小文字を区別して完全に一致させたい。

4

1 に答える 1

4

属性名をバイナリで囲んでみてください。

 @communities = Community.joins(taggings: :tag).where(['binary(tags.name) = ?', params[:tag]])
于 2013-01-30T17:50:50.117 に答える