Proc命令无法检查包含

时间:2017-03-28 05:57:23

标签: ruby-on-rails ruby-on-rails-4

我有一个名为visit_time的字段,其中包含两个不同的值。他们是" AM"和" PM"

我通过以下验证语法检查visit_time的存在。

validates_presence_of :visit_time,
      message: "visit time is required"

然后我只需要在visit_time存在的情况下检查包含验证,为此我使用Proc。但它没有用。

validates :visit_time,
        :inclusion  => { :in => [ 'AM', 'PM'],
                         :message    => "%{value} is not a valid time" },
        :if => Proc.new { |o| o.errors.empty? }

让我知道它有什么不对。 Proc不适用于包含???提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果您希望包含验证仅在其存在时运行,则应将Proc更改为此:

if: Proc.new { |o| o.visit_time.present? }