我正在尝试为start_date
和end_date
定义一个序列,以便end_date应该比start_date提前n天。
sequence(:start_date) { |n| Date.current.beginning_of_year.since(n.days) }
sequence(:end_date) { |n| generate(:start_date).since(n.days) }
但是这会导致undefined_method错误,因为生成应该在工厂块中调用
NoMethodError: undefined method `generate' for #<FactoryGirl::Syntax::Default::DSL:0xe5351fc>
我也可以将end_date排序为
sequence(:end_date) { |n| Date.current.beginning_of_year.ago(n.days) }
但这可能会导致我的end_date落后于start_date,这是不期望的。
有没有更好的方法来定义所需的开始和结束日期序列?
答案 0 :(得分:2)
要获得随机天数:
:start_date DateTime.now
:end_date (rand(n)+1).from_now
如果n
是间隔,即如果您想要1到60之间的天数,您将会这样做:
(rand(60)+1).from_now
答案 1 :(得分:0)
这项工作对我来说:
start_date Faker::Date.between(5.days.from_now, 55.days.from_now)
end_date Faker::Date.between(57.days.from_now, 75.days.from_now)