ActiveRecord 不區分大小寫的搜尋
如果你需要在 ActiveRecord 模型中搜尋類似的值,你可能會想要使用 LIKE
或 ILIKE
,但這在資料庫引擎之間是不可移植的。同樣,使用始終下降或升級可能會產生效能問題。
你可以使用 ActiveRecord 的基礎 Arel matches
方法以安全的方式執行此操作:
addresses = Address.arel_table
Address.where(addresses[:address].matches("%street%"))
Arel 將為配置的資料庫引擎應用適當的 LIKE 或 ILIKE 構造。