仅在计算时的某些时间出错:"Undefined method '/' for nil:NilClass"



我正在使用Ruby on Rails并正在迭代一个对象。

我想显示一个百分比,将两列的值除以 100。

我不知道我是否可以在视图中编写它,或者我是否需要在模型或控制器中编写方法。我首先选择在视图中编写它,并且仅在某些时候收到错误"nil:NilClass 的未定义方法"/"。

我认为这是当其中一列没有值时抛出的错误。当我在模型或控制器中编写方法时,没有错误,但我尝试显示的值为空。

以下是我的计算在视图中的外观:

显示.html.erb

<%= number_to_percentage(object.column1 / object.column2.round(2) * 100, precision: 0) %>

/ 是一种与 Ruby 中任何其他方法一样的方法,a / b只是一种不同的a./(b)说法,因此错误告诉您object.column1 nil

你必须决定你想要object.column1.nil的意思:

  • 你特别展示这些东西吗?如果是这样,那么:

    <% if object.column1.nil? %>
      nil or whatever else you want to say
    <% else %>
      <%= object.column1 / object.column2.round(2) * 100, precision: 0) %>
    <% end %>
    
  • 你想把nil当成零吗?如果是这样,那么:

    <%= object.column1.to_i / object.column2.round(2) * 100, precision: 0) %>
    

    如果column1是浮点值,则您希望使用 to_f 而不是 to_i。如果n是整数,那么n.to_i == nnil.to_i == 0 to_i是隐藏常见的"将nil视为0"逻辑的便捷方法;同样适用于floating_point_value.to_fnil.to_f.

如果object.column2也可以nil那么您必须就如何处理object.column2.nil?做出类似的决定。

相关内容

  • 没有找到相关文章

最新更新