0

我有一个Image名为 :text 列的模型,并且无法使用 FactoryGirlimage保存该字段。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 创作工作正常)

如何分配与其表同名的列?

4

1 回答 1

1

试试这个:

FactoryGirl.define do
  factory :image do |i|
    i.some_attr 'xxx'
    i.image "123456789.jpg"
  end
end

这样你实际上是在调用图像对象的 image= 方法,工厂女孩认为你正在尝试创建关联的另一种方式

(无论如何,您确实为该列使用了一个令人困惑的名称:P,image_path 或类似的名称会更好)

于 2013-01-23T02:35:06.580 回答