2011-09-10 8 views
1

factory_girlに問題があります。ここにrspecのエラーがあります。Factory_girlのエラー:NoMethodError:未定義のメソッド - rspecとrails 3.1.0

「失敗/エラー:顧客=工場(:顧客、:名=> nilの) NoMethodError:#Customerため 未定義のメソッド `category1_id =」: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は顧客テーブルの列です。 (:顧客)

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 

任意の考えここcustomer.rb

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

工場の定義はありますか?ありがとう。

+0

あなたの 'customer'テーブルに' category1_id'カラムがあるかどうかを確認してください。 – NARKOZ

答えて

0

factory_girl_rails(by factory_girl)への依存を削除し、Factory()をFactory.build()に置き換えた後に問題が消えました。

私のシステムのfactory_girl_railsにfactory_girlが依存関係を作り出しました(それでもなお理由はわかりません)。 factory_girlがインストールされている場合、gemはfactory_girl_railsをインストールする必要があります。しかし、factory_girlとfactory_girl_railsの両方がインストールされていると、重複エラーとの競合が発生しました。数時間の試行が失敗した後、システムをリブートして再ロードした後、矛盾の依存関係が不思議に消えました。

+0

同じ問題があります。また、接尾辞 '_id'を持つ属性もあります。最後の手段として、私はあなたが言ったように再起動しようとしたが、それはあまり役に立たなかった。 面白いのは、レールコンソールにファクトリを作成するが、スペックは作成しないということです。 –

関連する問題