我正在从事铁轨项目,并使用制动器作为调试工具。我已经使用了查询来从表中获取数据,但是在制动器测试期间,它指出查询中有SQL注入可能性。
这是我的查询:
Applicant.all.where("profile_id=#{current_user.profile.id}").first
但是我不知道该查询的问题是什么,如果没有固定,那么我该如何防止SQL注射?
根据铁路指南正确执行此操作的方法
Applicant.where('profile_id = ?', current_user.profile.id).first
OR
Applicant.where(profile_id: current_user.profile.id).first
OR
Applicant.find_by_profile_id(current_user.profile.id)
OR
Applicant.find_by(profile_id: current_user.profile.id)
我认为您要寻找的是:
Applicant.find_by(profile_id: current_user.profile.id)
阅读此代码时,更容易理解您的工作。