2017-03-09 70 views
0

任何人都可以解释这个错误吗?尝试在ERB文件中分割和减去。我相信最好的做法是在控制器中做,但宁可不行。ActionView :: Template :: Error(THING不能被强制转换为Fixnum):

  ActionView::Template::Error (AcctLedger can't be coerced into Fixnum): 
     Mar 09 00:25:34 myapp app/web.2:  107: 
     Mar 09 00:25:34 myapp app/web.2:  108:   <% if "myapp XL" == call.requested_type %> 
     Mar 09 00:25:34 myapp app/web.2:  109:   <% if call.has_fee? %> 
     Mar 09 00:25:34 myapp app/web.2:  110:    <% price = (price - call.has_fee)/2 %> 
     Mar 09 00:25:34 myapp app/web.2:  111:   <% else %> 
     Mar 09 00:25:34 myapp app/web.2:  112:    <% price = price/2 %> 
     Mar 09 00:25:34 myapp app/web.2:  113:   <% end %> 
+2

什么'call.has_fee'的价值?看起来像它的布尔值 –

+1

您是否尝试将其转换为整数befor进行计算,ruby中的.to_i方法。这是非常基本的,但这是我唯一的想法 –

回答

1

pricecall.has_fee返回一个AcctLedger对象,通过任何机会呢?这个错误是说AcctLedger不知道如何像数字一样行事,但是你正在尝试在计算中使用它。

你可以看到类似的事情,如果你尝试添加一个数字和字符串:

1 + '1' 
# TypeError: String can't be coerced into Fixnum 
相关问题