2011-06-29 13 views
0

Rails 3を使用してAPIを開発しており、タグ検索を実装しています。各ユーザーは独自のカスタムタグを追加できます。したがって、ユーザーがタグを検索すると、複数回返されます。たとえば、誰かがdrupalconを検索していて、10人がそれを追加した場合、検索結果に10回表示されます。私はタグごとに時間にのみ表示されます。Rails 3.単一項目のクエリ

これは私のクエリコードです。このような検索をするには、どのように拡張できますか?

@tags = Tag.where("LOWER (tag) LIKE ?", "%#{@query}%").limit(1) 

UPDATE

このクエリでそれを解決しました。

@tags = Tag.select('DISTINCT tag').where("LOWER (tag) LIKE ?", "%#{@query}%") 

すべての入力をいただきありがとうございます!

答えて

1

Tag.firstに電話し、conditionsオプションを渡します。

@tag = Tag.first(:conditions => ["LOWER (tag) LIKE ?", "%#{@query}%"]) 
+0

ありがとうございます。しかし、非難されない条件はありますか? –

+0

Mm、他のタグに "s"が含まれている場合、そのうちの1つだけが表示されています。だから私がタグ "sswc"、 "スーパーマン"を持っていて、人が "s"を検索しているのであれば、 "sswc"だけが表示されている。私は "s"を持っているすべてのタグを表示できるようにしたいが、それぞれの種類のうちの1つだけを表示する。 –

+0

これを使用して終了し、それは完全に動作します。@tags = Tag.select( 'DISTINCT tag')。ここで( "LOWER(tag)LIKE?"、 "%#{@ query}%") –

関連する問題