2012-01-16 6 views
-1

を失敗しました:簡単なRSpecのが私たちのアプリはRFQコントローラでテストインデックスの単純なケース(レール3.1.0)を持って、それがレールにテスト・コントローラインデックスに3.1.0

it "should be successful" do 
get 'index' 
response.should be_success 
end 

私達はちょうどことがわかりましたcaseは、index.html.erbのエラーのために失敗しました(ただし、前に渡されました)。コードの行は

<% @rfqs.each do |r| %> 

    <td><%= r.customer.short_name %></td> 

<% end %> 

でエラーがある:

1) RfqsController 'index' should be successful 
Failure/Error: get 'index' 
ActionView::Template::Error: 
undefined method short_name' for nil:NilClass 
# ./app/views/rfqs/index.html.erb:28:inblock in _app_views_rfqs_index_html_erb__624673492_53806644' 
# c:in each' 
# c:ineach' 
# ./app/views/rfqs/index.html.erb:18:in _app_views_rfqs_index_html_erb__624673492_53806644' 
# ./spec/controllers/rfqs_controller_spec.rb:16:inblock (3 levels) in ' 

しかし、アプリはインデックスページでSHORT_NAMEを表示するには問題ありません。また、railsコンソールで、r.customer.short_nameはcustomerテーブルから短い名前を返しました。 RFQモデルで

、それが関連性を有している:

belongs_to :customer 

コードの行になる場合ケースが通過する:r.customer_id、代わりにr.customer.short_name。問題に関する考えはありますか?ありがとう。

更新:問題が見つかりました。これは、テストデータベースの迷惑メールレコードによって発生します。テストDBをクリーニングした後、問題は消えました。

答えて

1

ここで、rfq.customerレコードを作成していますか?レコードが作成されていないように、顧客モデルを変更した(新しい検証を追加した)可能性はありますか?

+0

顧客レコードが作成され、選択のために引き込まれました。 rfqを作成するときは、customer_idだけがrfqレコードに保存されます。お客様のコントローラに変更はありません。 customer_idが正常に取り込まれ、customer_idに関連付けられた顧客の略称が見つかりません – user938363

+0

取得しているエラーは、それがnilであるため顧客を見つけることができないことを示しています。 – TDH

+0

奇妙なことに、customer_idとrspecのパスを見つけることができます。 – user938363

関連する問題