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}%")