我正在使用Rails 3.0的 Agile Web Development with Rails ,我正处于运行 rake test:functionals 给出成功结果的位置。< / p>
当我将以下代码添加到我的.html.erb并重新运行相同的命令时,我会在整个地方收到错误。
代码:
<span>
<% if session[:counter] > 5 %>
You've visited this page <%= pluralize(session[:counter], 'time') %>
<% end %>
</span>
错误:
ActionView::Template::Error: undefined method '>' for nil:NilClass
~/.rvm/gems/ruby-1.9.2-head/gems/activesupport-3.0.3/lib/active_support/whiny_nil.rb:48:in `method_missing'
答案 0 :(得分:1)
您的会话的:counter
成员似乎未正确设置,因此session[:counter]
已评估为nil
。确保在测试中正确设置会话变量。例如,get(:show, {'id' => "12"}, {'user_id' => 5})
会将session[:user_id]
设置为5。
有关详细信息,请参阅http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers。