0

我是 Rails 新手,目前正在学习验证,所以我创建了一个表单,其中我有一个名为 no(类型整数)的字段,在验证模型中我做了这样的事情:

validates :no,
        :presence => true,
        :uniqueness => true,
        :numericality => { :only_integer => true, :greater_than_or_equal_to => 1, :less_than_or_equal_to => 99999 }

现在,当没有输入任何内容时,会显示两条错误消息

1]Noを入力してください。 -> 请输入号码。2]Noは数値で入力してください。 -> 请只输入整数。

对不起,因为我的操作系统是日文的,所以日本的东西;-)

我需要的是,当“否”字段为空时,它应该只显示该空的 error_message。当前,当字段为空时,它会同时显示存在和数字的 error_message。

如果这是一个非常基本的问题,我很抱歉,我已经尝试寻找答案,但我似乎找不到任何答案。

4

1 回答 1

0

将您的数字验证更改为仅在该字段存在时才有效。

validates :no,
  :presence => true,
  :uniqueness => { :if => :no_is_present? },
  :numericality => {
    :only_integer => true,
    :greater_than_or_equal_to => 1,
    :less_than_or_equal_to => 99999,
    :if => :no_is_present?
  }

def no_is_present?
  no.present?
end
于 2013-03-17T13:08:41.203 回答