2011-09-10 57 views
1

我遇到了factory_girl的問題。這是rspec的錯誤。Factory_girl中的錯誤:NoMethodError:undefined方法 - rspec和rails 3.1.0

「故障/錯誤:客戶=出廠(:顧客,:名稱=>無) NoMethodError: 未定義的方法`category1_id爲#Customer =」:0x4175418"

這裏是RSpec的代碼:

describe "data integrity" do 
    it "should return error with no name" do 
    customer = Factory(:customer, :name => nil) 
    customer.errors[:name].should_not be_empty 
    customer.should_not be_valid 
    end 
    it "should take a good name" do 
    customer = Factory(:customer, :name => "good customer name") 
    customer.errors[:name].should be_empty 
    end 
end 

category1_id是客戶表中的一列。這裏是customer.rb

class Customer < ActiveRecord::Base 
    validates :name, :presence => true 
end 

的定義工廠(:客戶)

Factory.define :customer do |c| 
    c.name "test customer" 
    c.email "[email protected]" 
    c.phone "12345678" 
    c.cell "1234567890" 
    c.active 1 
    c.category1_id 2 
    c.short_name "test" 
end 

有什麼想法?謝謝。

+0

檢查'customer1'表中是否存在'category1_id'列 – NARKOZ

回答

0

在對factory_girl_rails(factory_girl)的依賴關係被刪除並且Factory()被Factory.build()所取代後,問題消失。

不知何故factory_girl在我的系統中開發了對factory_girl_rails的依賴(仍然不知道爲什麼)。通過安裝factory_girl,gem check需要安裝factory_girl_rails。但是,當安裝factory_girl和factory_girl_rails時,它們會產生與重複錯誤的衝突。經過數小時的失敗嘗試後,在重新啓動和重新加載系統後,衝突依賴性神祕消失。

+0

我遇到了同樣的問題,也帶有後綴爲_id的屬性。作爲最後的手段,我嘗試像你說的那樣重啓,並沒有多大幫助。 有趣的是,它在軌道控制檯中很好地創建了工廠,但不在規範中。 –

相關問題