ActiveRecord 不區分大小寫的搜尋

如果你需要在 ActiveRecord 模型中搜尋類似的值,你可能會想要使用 LIKEILIKE,但這在資料庫引擎之間是不可移植的。同樣,使用始終下降或升級可能會產生效能問題。

你可以使用 ActiveRecord 的基礎 Arel matches 方法以安全的方式執行此操作:

addresses = Address.arel_table
Address.where(addresses[:address].matches("%street%"))

Arel 將為配置的資料庫引擎應用適當的 LIKE 或 ILIKE 構造。