在搜索之前Rails的范围是小写的

时间:2016-12-02 17:26:07

标签: ruby-on-rails rails-activerecord

我正在尝试创建一个以不区分大小写的方式搜索模型的范围。

scope :services_offered, -> (service) { joins(:my_services).where(my_services: {services: service.downcase }) }

我可以放下传递给范围的参数,但我仍然坚持如何忽略模型上的情况。

也很高兴建议更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:1)

可移植的方法是通过一些SQL来缩小数据库中的列:

scope :services_offered, -> (service) { joins(:my_services).where('lower(my_services.services) = ?', service.downcase) }

或:

scope :services_offered, -> (service) { joins(:my_services).where('lower(my_services.services) = lower(?)', service) }