在我的搜索中,我主要找到了在输出或清理单个输入框时清理数据的方法:
<%=h @name %> OR ['name = ?', params[:name]]
但是,我正在创建一个像这样的对象:
@user = User.new( params[:user] )
现在,我可以一个一个地清理 params[:user] 哈希中的每个键,但我确信有一种更优雅的技术。
在我的搜索中,我主要找到了在输出或清理单个输入框时清理数据的方法:
<%=h @name %> OR ['name = ?', params[:name]]
但是,我正在创建一个像这样的对象:
@user = User.new( params[:user] )
现在,我可以一个一个地清理 params[:user] 哈希中的每个键,但我确信有一种更优雅的技术。
如果这是出于优化原因,请使用“ Sanitize ” gem。但是,由于您谈论为每个领域都这样做,所以这里有些不对劲。ActiveRecord 已经转义输入以避免 SQL 注入问题,但是您不需要对进入数据库的每一件事进行 HTML 转义(如果您想以某种方式处理原始数据,这样做可能会导致以后出现问题)。出于性能原因,您可能希望在它们进入数据库之前对其进行清理,例如富文本编辑器输入字段,例如来自 TinyMCE 的数据,您实际上希望根据白名单过滤数据,而不是只需通过简单的字符串转换来逃避它。