我有一个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
中的所有三行。
我已尝试应用How to initialize a column named 'sequence' with FactoryGirl,但我无法使其正常运行。 (我的其他模型的FactoryGirl创作工作正常)
如何分配与其表名称相同的列?
答案 0 :(得分:1)
试试这个:
FactoryGirl.define do
factory :image do |i|
i.some_attr 'xxx'
i.image "123456789.jpg"
end
end
这样你实际上是调用图像对象的image =方法,工厂女孩认为你试图创建关联的另一种方式
(无论如何你真的使用了一个令人困惑的名字:P,image_path或类似的东西会更好)