2012-03-25 67 views

回答

25

您可以在那裏使用ILIKE代替:

Konkurrencer.where("title ILIKE ?", "%#{params[:q]}%").limit(4) 

從DOC:

的關鍵字ILIKE可以用於替換LIKE匹配 不區分大小寫的根據,使活動區域設置。這不是SQL標準中的 ,而是PostgreSQL擴展。

+0

只是覺得http://www.postgresql.org/docs/8.0/static/ functions-matching.html – 2012-03-25 14:36:33

+4

請不要使用過期版本的手冊。你approriate版本號替換你的鏈接「8.0」(或者用「電流」代替) – 2012-03-25 14:48:48

+0

@a_horse_with_no_name感謝指出了這一點......做了回答 – ScottJShea 2012-03-25 14:50:33

2

對於採用較低的使用情況與PostgreSQL的搜索不區分大小寫...

例子:

def self.search(client, date_start, date_end) 
     joins(:customer).where("LOWER(customers.name) LIKE ? AND date >= ? AND date <= ?", "%#{client}%", date_start, date_end) 
end 
+0

良好的解決方案,因爲在PostgreSQL和SQLite的作品。我沒有使用MySQL進行測試。在我的情況下,我不得不降低搜索條件,爲inst。 「%#{} client.downcase% – 2015-05-06 19:38:18