2011-06-29 84 views
0

我正在開發使用Rails 3的API,我實現一個標籤搜索。每個用戶都可以添加自己的自定義標籤,因此當用戶搜索標籤時,它會多次返回。例如,當某人正在搜索drupalcon並且有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

嗯,如果有其他標籤的「s」在其中只顯示其中一個。所以如果我有標籤「sswc」,「超人」和一個人正在搜索「s」,只有「sswc」正在顯示。我希望能夠顯示所有標籤中有「s」的標籤,但只有其中一種。 –

+0

結束了使用這個,它完美的作品。 @tags = Tag.select( 'DISTINCT標籤')。其中( 「LOWER(標籤)LIKE?」, 「%#{@查詢}%」) –