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

时间:2011-11-15 08:32:47

标签: ruby-on-rails ruby ruby-on-rails-3

我在数据库中保存用户对象时遇到问题。我在模型中有两个字段(电子邮件和密码),在数据库本身中不允许为空。另外,我在模型中添加了验证,如

  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

我不需要同一个错误消息。我该怎样消除这个?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

看起来你两次渲染错误。检查所有视图,它们也可以继承。