Ruby on Rails:错误的参数类型为nil(预期Fixnum)

时间:2012-04-19 18:31:54

标签: ruby-on-rails ruby

我收到了奇怪的错误

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 %>

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

1 个答案:

答案 0 :(得分:1)

什么地方?如果不是英语语言环境,请尝试一个。

听起来很像this bug,其中number_to_human_size的调用最终称为BigDecimal.new(the_number.to_s).round(...).to_f,而round()由于区域设置问题而失败。生成的异常与您的错误完全匹配(“错误的参数类型为nil(预期的Fixnum)”)。