我正在学习Rails并创建了一个正在进行中的应用程序,该应用程序在各种程序(http://keyboardcuts.heroku.com/shortcuts/home)的快捷键数据库上进行单字搜索。快捷方式模型中的搜索方法如下:
def self.search(search)
search_condition = "%" + search + "%"
find(:all, :conditions => ['action LIKE ? OR application LIKE ?', search_condition, search_condition])
end
...其中'action'和'application'是SQLite表中的列。 (来源:https://we.riseup.net/rails/simple-search-tutorial)
出于某种原因,搜索似乎区分大小写(您可以通过搜索“粘贴”与“粘贴”来查看)。 任何人都可以帮我弄清楚为什么以及我能做些什么来使它不区分大小写?如果没有,你能否至少指出我正确的方向?
数据库创建:我首先将各种网站的快捷方式复制到Excel中并将其保存为CSV格式。然后我迁移了数据库,并使用db:seed和我编写的一个小脚本填充了数据(我查看了数据库,看起来很好)。为了将SQLite数据库提供给服务器,我使用了Taps作为Heroku网站(http://blog.heroku.com/archives/2009/3/18/push_and_pull_databases_to_and_from_heroku/)的大纲。我正在使用Ubuntu。
如果您需要更多信息,请与我们联系。在此先感谢您的帮助,非常感谢!
赖安
答案 0 :(得分:0)
您可以只使用SQL函数将数据强制为小写,然后相应地更改search_condition,而不是更改数据库中的任何设置:
def self.search(search)
search_condition = "%" + search.downcase + "%"
find(:all, :conditions => ['LOWER(action) LIKE ? OR LOWER(application) LIKE ?', search_condition, search_condition])
端