在我的活动模型中,我(曾经有)这些行进行验证:
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”*