轨道上的红宝石 - 工厂女孩表和列具有相同的名称,无法保存值



我有一个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或类似的东西会更好)

相关内容

  • 没有找到相关文章

最新更新