Activerecord 带2个参数的活动记录和

Activerecord 带2个参数的活动记录和,activerecord,Activerecord,我有一个使用ActiveRecord 3.0.3的Rails3应用程序 我试图根据表中的两个子查询字段获取表的总和 使用Rails控制台,我可以让它返回正确的值,如下所示: result = MyObject.sum(:foo, :conditions => "foo_id = #{self.id} AND bar_id = #{self.bar_id}" ) 然而,我无法让它与这样的东西一起工作: result = MyObject.sum(:foo, :conditions =>

我有一个使用ActiveRecord 3.0.3的Rails3应用程序

我试图根据表中的两个子查询字段获取表的总和

使用Rails控制台,我可以让它返回正确的值,如下所示:

result = MyObject.sum(:foo, :conditions => "foo_id = #{self.id} AND bar_id = #{self.bar_id}" )
然而,我无法让它与这样的东西一起工作:

result = MyObject.sum(:foo, :conditions => "foo_id = ? AND bar_id = ?", self.id, self.bar_id )
这样做将导致: 语法错误,意外“,”,应为tASSOC

我的问题:所以,我有生成正确值的代码。但我担心SQL注入可能会这样做?通常,您会在活动记录查询中使用参数,这看起来更像是串联

我仍在学习如何处理活动记录。
谢谢你的建议。

我想我刚刚明白了。很难找到这样的例子,只是用括号将arg括起来(将它们分组到一个数组中)

因此:

变成:

result = MyObject.sum(:foo, :conditions => ["foo_id = ? AND bar_id = ?", self.id, self.bar_id] )
result = MyObject.sum(:foo, :conditions => ["foo_id = ? AND bar_id = ?", self.id, self.bar_id] )