2017-03-09 16 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' 'の値は?あなたはそれをbooleanのように思えます –

+1

ルビから計算をする整数beforに変換しようとしましたか?これは非常に基本的ですが、私が持っている唯一のアイデアです –

答えて

1

万が一、priceまたはAcctLedgerオブジェクトを返すcall.has_feeですか?このエラーは、AcctLedgerは数字のように動作する方法がわかりませんが、計算で使用しようとしています。

あなたは数値と文字列を追加しようとすると、同じようなことを見ることができます:

1 + '1' 
# TypeError: String can't be coerced into Fixnum 
関連する問題