已经进行了日期验证

时间:2015-07-30 23:37:52

标签: ruby-on-rails ruby validation activerecord

我的Schedule模型有start_date date字段和type

Schedules为非start_date时,允许多个typenil相同。

validates :start_date, :presence => true, :uniqueness => { :if => Proc.new{ |schedule| schedule.type == nil } }

server » Schedule.where(start_date: s.start_date).count

他们.type中的2个是非零的,1是nil。然而,我收到了Schedule的错误,说

s.errors => { :start_date => [ [0] "has already been taken" ]

但它似乎只能自己采取。为什么会这样?

1 个答案:

答案 0 :(得分:0)

我可能错了,但我认为你不能使用":if"作为参数:unique - 它仅适用于整行。您可以尝试使用单独的验证器:

validates :start_date, :presence => true
validates_uniqueness_of :start_date, :if => Proc.new{ |schedule| schedule.type.nil? }