2013-10-28 74 views
0

由於<%=「%.1f」%(r.lint/@compare*),我的導軌應用程序中出現'數組無法強制轉換爲浮點型'錯誤100)%>在我看來。任何幫助,將不勝感激。陣列不能被強制轉換爲浮點型

查看

<% @result.each do |r| %> 
<%= "%.2f" % (r.lint/227) %></br> 
<%= "%.2f" % (r.lint/227/2.47) %></td> 
<%= "%.1f" % (r.lint/@compare*100) %> 
<% end %> 

控制器

def trial 
@result = Result.where('trial_id' => params[:trial_id]).order('lint DESC') 
@compare = Trial.where('trial_id' => params[:trial_id]).pluck(:comp_lint) 
end 

回答

0

的誤差似乎是因爲@compare是的Trialcomp_lint陣列。

如果你的情況下,將永遠是一個然後@compare

@compare = Trial.where('trial_id' => params[:trial_id]).pluck(:comp_lint).first 

.first否則,如果你想總結一下所有comp_lint當時做

@compare = Trial.where('trial_id' => params[:trial_id]).pluck(:comp_lint).sum 
+0

謝謝阿米特。作品一種享受。 – Grinskull

0

@compare實際上是一個數組[:comp_lints](不管那是什麼)。 因此,當你這樣做時,Ruby嘗試將@compare(Array)轉換爲Float。哪些不可能發生。

您需要從@compare中選擇適當的值並執行算術運算。

相關問題