我有个奇怪的错误

ActionView::Template::Error (wrong argument type nil (expected Fixnum)):

在这条线上:
<%= (!attach.file_size.nil?) ? "(#{number_to_human_size(attach.file_size.to_i).to_s})": ""  %>

这是我的代码:
<% if !pr.attachments.empty? %>
<ul class="attached_files">
  <% pr.attachments.each do |attach| %>
    <li><a href="<%= attach.path_url%> " target="_blank"><%= attach.path_identifier%></a>
    <%= (!attach.file_size.nil?) ? "(#{number_to_human_size(attach.file_size.to_i).to_s})": ""  %>
    </li>
  <%end%>
</ul>
<% end %>

我不知道问题在哪里。请帮帮我。谢谢!

最佳答案

什么地方?如果不是英语语言环境,试试。
听起来很像this bug,其中对number_to_human_size的调用最终调用了BigDecimal.new(the_number.to_s).round(...).to_f,而由于区域设置问题,round()调用失败。生成的异常与错误完全匹配(“错误的参数类型nil(应为fixnum)”)。

10-08 04:21