Activerecord 带2个参数的活动记录和
我有一个使用ActiveRecord 3.0.3的Rails3应用程序 我试图根据表中的两个子查询字段获取表的总和 使用Rails控制台,我可以让它返回正确的值,如下所示: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 =>
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] )