将pluralize添加到.html.erb会导致Rails功能测试中出错

时间:2011-01-30 22:40:25

标签: ruby-on-rails-3

我正在使用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'

1 个答案:

答案 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