检查rails的参数(如params[:id])是否合法,通常是用正则表达式来实现.还有一个更小巧的方法:ruby的Integer 类.
特性:Integer与to_i方法
x = "111k222".to_i # 111
y = Integer("111k222") # error
在application.rb中写一个前置过滤器,方法如下before_filter :law_params
def law_params(*ps)
ps.compact!
ps.each{|k| Integer(k) }
rescue ArgumentError
return redirect_to argument_error_path
end
有关Integer 与to_i方法(Float与to_f)的详细可以查看ruby api.