【发布时间】:2013-02-13 21:37:57
【问题描述】:
对 ActiveRecord 产生低效或错误的 DELETE 查询感到失望,我正在寻找一种能够以安全的方式执行直接 SQL 查询的能力,没有 SQL 注入的可能性。
我知道 WHERE 子句有一个安全的变体:
MyObject.joins(:details)
.where('my_objects.my_value = ? and details.my_id = ?',
params[:value], params[:id])
execute 的安全变体是否存在?比如:
execute(<<eos
DELETE FROM my_objects
USING details
WHERE
my_objects.details_id = details.id
AND my_objects.my_value = ?
AND details.my_id = ?
eos
, params[:value], params[:id])
【问题讨论】:
标签: ruby-on-rails postgresql inner-join rails-activerecord