我正在尝试创建一个以不区分大小写的方式搜索模型的范围。
scope :services_offered, -> (service) { joins(:my_services).where(my_services: {services: service.downcase }) }
我可以放下传递给范围的参数,但我仍然坚持如何忽略模型上的情况。
也很高兴建议更好的方法来做到这一点。
答案 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) }