Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails 3中保存模型时出现多个验证错误问题_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 在rails 3中保存模型时出现多个验证错误问题

Ruby on rails 在rails 3中保存模型时出现多个验证错误问题,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在数据库中保存用户对象时出现问题。我在模型中有两个字段(email和password),数据库本身不允许为空。另外,我在模型中添加了验证,如 validates_presence_of :email, :message => "must be provided" validates_presence_of :password, :message => "must be provided" 现在,当我尝试从控制器的create方法保存模型时,它会使数据无效并再次呈现新操作。但

在数据库中保存用户对象时出现问题。我在模型中有两个字段(email和password),数据库本身不允许为空。另外,我在模型中添加了验证,如

  validates_presence_of :email, :message => "must be provided"
  validates_presence_of :password, :message => "must be provided"
现在,当我尝试从控制器的create方法保存模型时,它会使数据无效并再次呈现新操作。但是,每个字段都有多条错误消息

Email can't be blank
Email must be provided
Password can't be blank
Password must be provided

我不需要为同一个错误发送多条错误消息。如何消除此问题?

看起来您在两个不同的地方进行验证。你必须弄清楚那些地方

如果您正在对一个字段执行两种不同的验证,并且希望一次在一个字段上显示一条错误消息,则可以执行以下操作:

validates_presence_of   :email, :message => "must be provided"
validates_uniqueness_of :email, :message => "must be unique", 
     :if => lambda { |a| a.errors.on(:email).blank? }

看起来您两次呈现错误。检查所有视图,它们也可以被继承。

Hmm,但错误不同。看起来更像是有两组验证正在进行——在Rails中再次渲染不会导致重新验证。你能发布你的型号代码吗?您的模型是直接从
ActiveRecord::Base继承的,还是在模型类和它之间插入了一个类?如果是这样,您是否在中间类中进行了验证。基本上,我们还需要更多的工作