2013-01-22 109 views
0

我有一個Image模型,其文本列名爲image,我無法使用FactoryGirl保存image字段。FactoryGirl表和列具有相同的名稱,無法保存值

下面是相關的代碼:

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

試試這個:

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

這樣你實際上是調用圖像=圖像對象的方法,其它方法工廠女孩認爲你正試圖創建關聯

(你真的無論如何,這個列使用了一個令人困惑的名字:P,image_path或類似的東西會更好)

相關問題