SQLite:使用变量进行字符串插值

时间:2016-04-08 20:00:59

标签: ruby-on-rails sqlite string-interpolation

我在我的Rails 4应用程序中发出ajax请求,但无法使我的搜索查询正常运行。我有一个搜索适用于我查询的地方:

list = list.where(TARGET_NAME like :search or BAR like :search, search: "%#{params[:search]["value"]}%")

输出以下内容:

SELECT COUNT(*) FROM "list" WHERE (TARGET_NAME like '%x%' or BAR like '%x%')

我还有另一个搜索,其中被搜索的内容也是一个变量,我尝试使用以下内容复制上面的查询:

list = list.where(:column like :search, column: $other_list[col[0]], search: "%#{col[1]["search"]["value"]}%"

输出以下内容:

SELECT COUNT(*) FROM "list" WHERE ('TARGET_NAME' like '%x%')

由于TARGET_NAME在查询中引用,我得到0结果返回。 如何在没有引号的情况下注入变量?

1 个答案:

答案 0 :(得分:0)

我确信有一种方法可以使用变量完成此操作,但我只是将变量:col替换为$other_list[col[0]]来发出请求:

list = list.where("#{$other_list[col[0].to_i]} like :search", search: "%#{col[1]["search"]["value"]}%")