Ruby on rails Rails:日期验证或无/空白
在我的事件模型中,我(过去)使用以下行进行验证:Ruby on rails Rails:日期验证或无/空白,ruby-on-rails,ruby,validation,date,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_da
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
这些测试失败了(多亏了李梅钦的建议,我进行了重构)
然而这些都过去了
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
我在程序逻辑中有一个变通方法,每当开始日期为零时,就将截止日期设置为零,但测试仍然失败。
有什么想法吗
谢谢
<强> ps:使用宝石“DATEYValueTalk”、“~>0.63”*<强>
应考虑将第二次测试重构为个别情况。然后,您可以更容易地确定哪个断言失败,并使您的测试更具可读性。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