为什么Chrome会跳过数值验证?

时间:2012-03-13 18:56:19

标签: ruby-on-rails google-chrome validation

我有这个验证:

validates :year, :presence => true, :numericality => { :only_integer => true }, :uniqueness => true

这在Firefox中运行良好,但在Chrome中数值验证无效。如果我写23ab保存为23并且不显示错误。可以因为HTML5的标签输入类型号?

1 个答案:

答案 0 :(得分:1)

检查您的操作实际接收的参数(即检查您的development.log)并在params哈希中发布实际发送到控制器的信息。

在浏览器传输表单数据之后,在数据库中保存/更新之前,模型中的验证发生在服务器端。因此,如果来自两个不同浏览器的完全相同的输入产生不同的验证结果,那么它可能在浏览器被控制器操作接收之前被浏览器修改。

换句话说:它不是被跳过的验证,它是被修改的输入数据,至少是最有可能的。检查你的params散列实际上是什么,你将在回家的路上。