消除活动记录中的数据

时间:2009-06-08 07:21:33

标签: ruby-on-rails

我想在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查询失败来逃避那里的撇号。

2 个答案:

答案 0 :(得分:2)

如果您使用以下格式执行查找,Rails将为您处理大量的santizing。它将运行必要的子方法,以确保没有任何潜在的破坏性插入到数据库中。不确定单个倒置逗号,但它值得一试。

Model.find(:all, :condition => ["text_value = ?", params[:form_input])

答案 1 :(得分:0)

你可能想看看这个线程 - 来自Ruby论坛的Strip & Sanitize BEFORE saving data - 我没有尝试过任何提到的解决方案,但它可能会让你朝着正确的方向前进