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 に答える