0

我也有返回用户有权访问的项目列表的范围。他们要么在参与者名单上,要么拥有他们列出的项目。查询工作正常,但它不是 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)
}
4

1 回答 1

1

采用ActiveRecord::Base.sanitize(string)

于 2013-02-07T03:36:15.163 回答