我想在ActiveRecord中清理来自我的表单的数据。特别是撇号之前它实际上包含在SQL查询中。如果raghu'\s
被输入,我希望它是raghu's
。我已经尝试过使用:
sanitize_sql_array
sanitize_sql_for_assignment
sanitize_sql_for_conditions
sanitize_sql_hash_for_assignment
sanitize_sql_hash_for_conditions
但是这些似乎都没有通过我的SQL查询失败来逃避那里的撇号。
答案 0 :(得分:2)
如果您使用以下格式执行查找,Rails将为您处理大量的santizing。它将运行必要的子方法,以确保没有任何潜在的破坏性插入到数据库中。不确定单个倒置逗号,但它值得一试。
Model.find(:all, :condition => ["text_value = ?", params[:form_input])
答案 1 :(得分:0)
你可能想看看这个线程 - 来自Ruby论坛的Strip & Sanitize BEFORE saving data - 我没有尝试过任何提到的解决方案,但它可能会让你朝着正确的方向前进