2012-04-09 72 views
0

我有一個末日應用中的以下.erb觀點:如何對.erb文件中的兩個變量執行內聯計算?

<% sessions.each do |session| %> 
    <%= session.balance_beginning %> 
    <%= session.balance_ending %> 
<% end %> 

它將按預期,顯示開始和結束記錄每個會話的餘額。我想從.erb文件中計算淨餘額,但我無法弄清楚如何去做。我試過這個變化:

<% sessions.each do |session| %> 
    <%= session.balance_ending - session.balance_beginning %> 
<% end %> 

這是行不通的。我在Sinatra中收到以下錯誤:

undefined method `-' for nil:NilClass 

我該如何做我想做的事?

+3

首先,不要在視圖中執行計算 - 將它們提取到幫助程序。其次,'session.balance_ending'是'nil',因此是錯誤。 – Zabba 2012-04-09 01:08:34

+0

應該是一個答案;) – d11wtq 2012-04-09 01:19:29

+1

@ d11wtq:並注意到'nil.to_i'爲零會使它更好。 – 2012-04-09 01:20:30

回答

3

右@Zabba,在這種情況下,我認爲你會在你的會話模型中添加一個方法,所以你可以調用session.net_balance。

然後,在您的balance_ending和balance_beginning方法中,您希望處理nil,如果該方法有效,則引發錯誤或返回零。

相關問題