0

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

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!"因为那是新的基地。

4

1 回答 1

2

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

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

请注意根据 Rails 验证方法删除的“s”。validates变成validate.

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

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

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

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

于 2013-05-14T03:06:34.513 回答