测试NoMethodError:未定义的方法

时间:2014-10-16 14:55:08

标签: ruby-on-rails testing undefined

我有多个设备,当进入每个设备时,信息被拉动。 但是,有时设备不符合标准,不会返回我正在寻找的信息并收到错误消息:

undefined method `[]' for nil:NilClass

这是导致问题的一行:

<%= @device['summary.usrate']['_value'] %>

如果错误发生且变量可用,如何测试打印'空白'?

<%= if @device['summary.usrate']['_value'] != nil print this_variable %>

2 个答案:

答案 0 :(得分:0)

这是因为@device [&#39; summary.usrate&#39;]为零。试试这个:&lt;%= @device [&#39; summary.usrate&#39;] [&#39; key&#39;] if @device [&#39; summary.usrate&#39;]%&gt; < / p>

答案 1 :(得分:0)

这似乎对我有用。 我也尝试了以下测试并且有效:

<% if defined?(@device['summary.dsrate']['_value']) %>
   <%= @device['summary.dsrate']['_value'] %>
<% end %>