我正在从form_for接收模型的数据。该模型对数据进行了广泛的验证,我使用if @name.save
来捕获任何错误。
在@name = Name.new(params[:name])
之前运行以下其中一项,有助于保持我的网站更安全:
if !params.nil?
if params.has_key "name"
if params.include? "name"
如果出于安全原因,是否有其他理由这样做?我不询问用户输入是可选的情况,我想检查它是否存在,但是关于预期用户输入但是由于某种原因未能到达的情况。
答案 0 :(得分:1)
你不需要写params.nil?用于检查参数。 验证应该写在模型中。 如果您不使用导轨4, 您可以使用'strong_parameters'gem来仅允许所需的参数建模(出于安全原因)。 strong_parameter gem已经存在于rails 4中。