更新 我正在尝试使用Factory Girl来填写我的“发布日期”字段,需要一个日期、一个随机日期,实际上现在只要有一个日期就行了,因为当我运行我的item_pages_spec.rb时,我一直得到“验证失败:发布日期不能为空”错误。
在下面的帮助之后,这是我在item页面的factories.rb中拥有的内容,但是我现在已经尝试了很多不同的东西。
factory :item do
sequence(:name) { |n| "Item #{n}" }
release_date { rand(1..100).days.from_now }
end
理想情况下,每个工厂制造的物品实例都应该创建不同的随机日期。
由于在我的物品模型中使用了“validates :release_date, presence: true”,因此发布日期不能为空。理想情况下,我希望在那里有一个验证,确保提供的任何日期都是日期格式,但也接受NIL,因为我并不总是有可用的日期。
非常感谢您的任何帮助。我在网上找不到关于factory girl和日期的具体信息。
模型
class Item < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
validates :release_date, presence: true
end
Item_pages_spec.rb
require 'spec_helper'
describe "Item pages" do
subject { page }
describe "Item page" do
let(:item) { FactoryGirl.create(:item) }
before { visit item_path(item) }
it { should have_content(item.name) }
it { should have_title(item.name) }
end
end
release_date { rand(1..100).days.from_now }
这里可以插入任何范围到rand
函数中。顺便说一下,请阅读文档。 - j03w