Rails:日期验证或零/空白

时间:2012-09-06 17:29:22

标签: ruby-on-rails ruby validation date

在我的活动模型中,我(曾经有)这些行进行验证:

validates_date_of :begins_at
validates_date_of :deadline
validates :deadline, :date => {:before_or_equal_to => :begins_at}

现在我想要两个字段选项,以迎合“未确定”的事件。但是,如果我有

validates_date_of :begins_at, :allow_nil => true
validates_date_of :deadline, :allow_nil => true
validates :deadline, :date => {:before_or_equal_to => :begins_at }, :allow_nil => true

这些测试失败了(感谢 leemachin 的建议,我重构了)

it "should accept nil as begining_date"  do
@event.begins_at=nil;
@event.should be_valid
end

it "should have valid deadline"  do
@event.deadline="Not a date";
@event.should_not be_valid
end

而这些传递

it "should accept both dates as nil"  do
@event.begins_at=nil;
@event.deadline=nil;
@event.should be_valid
end

it "should accept nil as deadline"  do
@event.deadline=nil;
@event.should be_valid
end

我在程序逻辑中有一个解决方法,只要开始日期为nil就将截止时间设置为nil,但测试仍然失败。 有什么想法吗?

由于

PS:使用gem“date_validator”,“〜> 0.6.3”*

0 个答案:

没有答案