我的模型包含两个表示start_time
和end_time
的整数列。这些时间由当天的分钟偏移量表示。
class Example < ActiveRecord::Base
validates :start_time, inclusion: 0..1440
validates :end_time, inclusion: 0..1440
end
我也有工厂
FactoryGirl.define do
factory :examples do
start_time { Kernel.rand(1441) }
end_time { Kernel.rand(1441) }
end
end
当我构建这个对象并检查它是否对RSpec有效时,我得到与之相关的错误 start_time和end_time不在列表中。检查对象的值表明它们在范围内正确。
我已尝试以下方法让它发挥作用。
inclusion: { in: 0..1440 }
inclusion: [0..1440].flatten
---编辑
在RSpec
let(:example_klass) { FactoryGirl.build(:example) }
expect(example_klass).to be_valid ##=> FAILS
在rails控制台
t = FactoryGirl.build(:example)
t.valid?
=> true
任何帮助将不胜感激!
答案 0 :(得分:1)
使用
FactoryGirl.define do
sequence :start_time , (0..1441) do |n|
n
end
sequence :end_time , (0..1441) do |n|
n
end
end
并在您的示例工厂中使用
FactoryGirl.define do
factory :examples do
start_time
end_time
end
end
任何事情都参考文档:https://github.com/thoughtbot/factory_girl/wiki/Usage#sequences-and-associations。
希望这有帮助