Rails SQL查询列在哪里?
我正在Rails中编写一个自动完成查询,它返回以键入内容开头的项。我如何将其扩展到包含一个句子中的所有单词 例如: 项:从控制台添加记录 如果用户搜索“console”,我如何将其包括在结果中,并且仍然保留第一个条件 我的查询Rails SQL查询列在哪里?,sql,ruby-on-rails-3,autocomplete,Sql,Ruby On Rails 3,Autocomplete,我正在Rails中编写一个自动完成查询,它返回以键入内容开头的项。我如何将其扩展到包含一个句子中的所有单词 例如: 项:从控制台添加记录 如果用户搜索“console”,我如何将其包括在结果中,并且仍然保留第一个条件 我的查询 SubCategory.where("name LIKE ?", "#{params[:q]}%") 因此,如果输入是bla,那么您需要 以bla开头的名称 和后面有空格和bla的名称 这将是: YourModel.where("name LIKE ? OR nam
SubCategory.where("name LIKE ?", "#{params[:q]}%")
因此,如果输入是bla,那么您需要
- 以bla开头的名称
- 和后面有空格和bla的名称
YourModel.where("name LIKE ? OR name LIKE ?", "#{term}%", "% #{term}%")
谢谢Thomas,这很好用,但是如果我想在结果中同时包含这两个方面呢。假设我有5条以bla开头的记录,我想先显示它们,但在它们下面我还想包括那些不以bla开头但有空格的记录,然后包括bla。这能在多个层次上发挥作用吗?例如,名称空间名称空间bla如果查看SQL,您将看到它包含
或。所以它将匹配其中一个,或者另一个,或者两者都很好。好吧,对结果进行排序,这样如果满足第一个条件,它就会首先显示出来,怎么样?请参阅添加到描述中的pic。我非常确定添加类似.order(“ASC位置(?在您的_models.name中)”,term)
的内容应该可以实现这一目的。