非効率的またはバグのあるDELETEクエリを生成するActiveRecordに失望しているので、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])