我有一个范围可以返回用户也可以访问的项目列表。要么他们在参与者列表中,要么他们拥有列出的项目。查询工作正常,但不是SQL安全。我无法弄清楚如何使JOIN安全。 where子句是安全的,但尝试使用join不起作用。我似乎无法在这里找到文档或答案。猜猜我错过了一些基本的东西。
scope :manageable_by_user, lambda { |user|
joins("LEFT JOIN participants ON
participants.project_id = projects.id
AND participants.user_id = #{user.id}").
where("projects.user_id = ? OR projects.user_id IS NOT NULL",user.id)
}
答案 0 :(得分:1)
使用ActiveRecord::Base.sanitize(string)