需要通过活动记录绑定params的方法

时间:2016-10-04 22:36:46

标签: ruby-on-rails activerecord

有没有办法在rails活动记录方法中使用bind params选择?
我有像

这样的查询
SELECT column * #{param1} / #{param2} as value
FROM table
ORDER BY value

所以我有外部参数,我想绑定。

需要类似

的内容
Table.select('column * :param1 / :param2 as value', 
             {param1: param1, param2: param2})   
      .order('value').all

此查询出错 Unsupported argument type: Hash. construct an Arel node instead.

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题。您可以使用数组条件或散列条件语法。

数组条件:

Table.where("property BETWEEN ? AND ?", param1, param2)

哈希条件:

Table.where("property BETWEEN :param1 AND :param2", param1: param1, param2: param2)

好像你正在使用哈希条件,但我不确定这是一个正确的select语句。尝试使用"其中"相反,省略"列*"检索所有列。