2012-03-12 20 views
0

は私の工場は、以下のとおりです。Rails/Rspec/Factory girl:レコードが関連付けられていませんか?ここ

FactoryGirl.define do 
    factory :account do 
    company 'Example, Inc.' 
    end 

    factory :site do 
    association :account 
    end 

    factory :page do 
    association :site 
    end 
end 

そして、単純な要求仕様:

require 'spec_helper' 

describe "Pages" do 

    before do 
    @account = Factory(:account) 
    @site = Factory(:site) 
    end 

    it "lets me create a new page" do 
    visit account_site_pages_path(@account, @site) 
    page.should have_content('New Page') 
    end 

end 

しかし、私はこの失敗を取得:

Failure/Error: visit account_site_pages_path(@account, @site) 
ActiveRecord::RecordNotFound: 
Couldn't find Site with ID=51 [WHERE (`sites`.account_id = 127)] 
# <internal:prelude>:10:in `synchronize' 
# ./spec/requests/pages_spec.rb:19:in `block (2 levels) in <top (required)>' 

サイトの工場が適切に関連付けられていない意味アカウント、そうですか?私はかなり明白な何かを見逃していると思います:D

答えて

0

@account@siteが接続されていない、これはおそらく問題です。そう:

before do 
    @account = Factory(:account) 
    @site = Factory(:site, :account => @account) 
end 

その方法は、あなたのサイトは、新しいアカウントを作成しておらず、代わりに元のアカウントに関連しています。

+0

うん、そうだった。ありがとう! – imderek

関連する問題