rails形成基本错误消息

时间:2013-05-14 03:02:48

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

rails guide读取它说更改基本错误消息,您可以将新基数附加到errors数组。出于某种原因,这样做导致两个错误消息,而不是一个,甚至没有达到我的预期,这就是我在代码中的内容

validates :tawme, :start_date, presence: true
def tawme
  errors[:base] << "Buyaka!"
end

但是当表单上出现错误消息时

The form contains 2 errors
Buyaka!
Start date can't be blank

我原以为"Start date"会被"Buyaka!"取代,因为那是新的基础。

1 个答案:

答案 0 :(得分:2)

您应该从方法参数中删除:start_date,并在方法tawme中添加对if start_date.blank?的调用,如下所示...

validate :tawme
def tawme
  errors[:base] << "Buyaka!" if start_date.blank?
end

根据Rails验证方法注意删除的's'。 validates变为validate

在您的代码中,您仍然包含validates_presence_of(start_date)。

此外,错误[:base]是一个你没有替换的数组。

<<方法将字符串推送到errors哈希中数组的末尾。

...有用 http://guides.rubyonrails.org/active_record_validations_callbacks.html#custom-methods