QA@IT

Rails[rake test]でのエラー"undefined method `>' for nil:NilClass"

3576 PV

はじめまして、
開発環境は下記の通りです。

ruby:1.9.2p320 rails:3.2.12

RailsによるアジャイルWebアプリケーション開発 第4版 にてdepotのアプリ開発を学んでいたのですが、
rake test:functionalsで表題のエラーがでます。

原因は、layouts/application.html.erbでの、下記のコードだとわかったのですが、「>」の記述の仕方が問題なのでしょうか?
ブラウザでは動作に問題がなくテストの際にエラーが出てしまいます。

<p>アクセス回数:<%= session[:counter] if session[:counter] > 5 %></p>

よろしくお願いいたします。

回答

> がHTMLで特殊な扱いの文字だから、ではなく、 session[:counter]nil になっているようですね。それなりのテスト用セッションの値を与えておくか、 session:counter というキーがあるかを確認すればよいと思います。

カートの章の演習課題にも、

Note that the first time this page is accessed, your count won’t be in the session.

とか、

If the session variable isn’t there, you’ll need to initialize it.

とか書いてあるようですね。

編集 履歴 (0)
  • 回答ありがとうございます。ご指摘の通り
    application.html.erbに記述しているため、session[:counter] が nil になっているみたいです。本の課題の通り、カタログページのみにコードを記載すればエラーがなくなりました。少し関係性が理解できたように思います。ありがとうございました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。