2011-06-01 33 views
1

我試圖執行一個計算,看起來像我一樣,它必須在視圖到目前爲止。Ruby/Rails - 是否可以在視圖中執行紅寶石計算?

在視圖我有

<% for post in @user.posts %> 
    <%= post.tasks.count/@projects.tasks.count %> 
<% end %> 

我想要顯示的百分比....當我把<%= post.tasks.count%>它本身顯示2和<% = @projects.tasks.count%>它顯示4.

但是,當我嘗試做<%= post.tasks.count/@ projects.tasks.count%>它顯示0不是.50或1/2 。

我在視圖中執行該邏輯的原因,而不是控制器是我想顯示for循環的每次迭代

回答

6

你得到零的是,這兩個數字都是整數的原因,所以它做整數除法。如果您將第一個轉換爲浮點數,那麼您將得到一個浮點數作爲結果。

如果要將數字格式設置爲百分比,則還需要使用number_to_percentage助手。所以,你的視圖代碼看起來是這樣的:

<%= number_to_percentage(post.tasks.count.to_f/@projects.tasks.count) %> 

,並會產生視圖中的輸出50%。如果需要進一步自定義,還可以爲該幫助程序指定精度和一些格式化選項。

4

整數運算產生整數結果動態百分比。嘗試:

<%= post.tasks.count.to_f/@projects.tasks.count %> 

要得到的顯示精度控制等,你可能想是這樣的:

<%= "%4.2f" % (post.tasks.count.to_f/@projects.tasks.count) %>