Ruby on rails 如何返回具有任何列匹配输入的任何行的任何记录
我想一次搜索多个列。例如,给定一个关键字Ruby on rails 如何返回具有任何列匹配输入的任何行的任何记录,ruby-on-rails,Ruby On Rails,我想一次搜索多个列。例如,给定一个关键字apple,我想知道它是否包含在title,description,tag中。目前我可以从一列中搜索并返回记录,我想搜索所有列 我在我的控制器课上试过这个 def search keyword = params[:input] task = Task.where("title LIKE ?", "%#{keyword}%", " OR priority LIKE ?", &quo
apple
,我想知道它是否包含在title
,description
,tag
中。目前我可以从一列中搜索并返回记录,我想搜索所有列
我在我的控制器课上试过这个
def search
keyword = params[:input]
task = Task.where("title LIKE ?", "%#{keyword}%", " OR priority LIKE ?", "%#{keyword}%")
@tasks = task.order(sort_column + ' ' + sort_direction)
end
这是我的ActiveRecord:
class CreateTasks < ActiveRecord::Migration[6.1]
def change
create_table :tasks do |t|
t.string :title
t.text :body
t.datetime :due
t.integer :priority
t.text :tag
t.timestamps
end
end
end
编辑:添加我的模型
,其中
需要一个条件和多个参数。这意味着SQL语句不能拆分为多个段(作为列表或散列)
改变
task = Task.where("title LIKE ?", "%#{keyword}%", " OR priority LIKE ?", "%#{keyword}%")
到
或
请参阅。
,其中
需要一个条件和多个参数。这意味着SQL语句不能拆分为多个段(作为列表或散列)
改变
task = Task.where("title LIKE ?", "%#{keyword}%", " OR priority LIKE ?", "%#{keyword}%")
到
或
查看。它仍然找不到我的优先级,你,这与枚举的优先级有关吗?啊,等等<代码>优先级是一个整数列,而不是
字符串
。你不能像那样使用整型列。嗯,我怎样才能搜索它的字符串值?你到底想做什么?假设有一个整数12345
你希望通过像%234%这样的查询找到它吗?我希望输入是字符串值,然后用它来搜索数据库。它仍然找不到我的优先级,这与枚举的优先级有关吗?啊,等等<代码>优先级
是一个整数列,而不是字符串
。你不能像那样使用整型列。嗯,我怎样才能搜索它的字符串值?你到底想做什么?假设有一个整数12345
,您希望通过像%234%这样的查询找到它吗?我希望输入是字符串值,并使用它搜索数据库
task = Task.where("title LIKE ? OR priority LIKE ?", "%#{keyword}%", "%#{keyword}%")
task = Task.where("title LIKE :q OR priority LIKE :q", q: "%#{keyword}%")