FactoryGirl表和列具有相同的名称,无法保存值

时间:2013-01-22 23:34:10

标签: ruby-on-rails ruby-on-rails-3 factory-bot

我有一个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创作工作正常)

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

1 个答案:

答案 0 :(得分:1)

试试这个:

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

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

(无论如何你真的使用了一个令人困惑的名字:P,image_path或类似的东西会更好)

相关问题