我有一个Image
模型,其中包含一个名为image
的文本列,无法使用FactoryGirl保存image
字段。
以下是相关的代码段:
image_spec.rb:
let(:image) { FactoryGirl.create(:image) }
subject { image }
it { should be_valid }
factories.rb:
factory :image do
image "123456789.jpg"
end
image.rb:
attr_accessible :image
validates :image, presence: true
当我运行测试时,出现错误
Failure/Error: let(:image) { FactoryGirl.create(:image) }
ActiveRecord::RecordInvalid:
Validation failed: Image can't be blank
对于上面image_spec.rb
中的所有三行。
我尝试使用 FactoryGirl 应用如何初始化名为"序列"的列,但我无法让它工作。(我的其他模型的工厂女孩创作工作正常)
如何分配给与其表同名的列?
试试这个:
FactoryGirl.define do
factory :image do |i|
i.some_attr 'xxx'
i.image "123456789.jpg"
end
end
这样,您实际上是在调用图像对象的image=方法,而另一种方式是工厂女孩认为您正在尝试创建关联。
(无论如何,您确实为该列使用了令人困惑的名称,:P,image_path或类似的东西会更好)