2013-05-09 19 views
0

我正在嘗試編寫一個應用程序來計算生病/休假天數以及員工在任一類別中的可用人數。在我的員工模式中,vacation_days是由他們的僱用日期確定的值,sick_days對於所有員工都是相同的,並且是單獨的「池」。我最近的一個障礙是試圖確定如何從適當的池中減去他們的休假時間。如果......然後......語法問題

這裏是我的員工型號:

class Employee < ActiveRecord::Base 

    def remaining_vacation_days 
    vacation_days - vacation_days_used 
    end 

    def remaining_sick_days 
    sick_days - sick_days_used 
    end 

    def vacation_days_used 
    if Furlough.description == "Vacation" 
     Furlough.duration 
    end 
    end 

    def sick_days_used 
    if Furlough.description == "Sick" 
    Furlough.duration 
    end 
    end 

有一個名爲字符串列:在處理該日期範圍(命名爲休假)模型描述和形式是一個單選按鈕,其中只有兩個選項是'生病''假期'。然而,我在與得到的員工模型的語法正確的問題:

SyntaxError in Employees#index 

Showing /Users/ryrythefrenchfry/rails_projects/time_tracker/app/views/employees/index.html.erb where line #28 raised: 

/Users/ryrythefrenchfry/rails_projects/time_tracker/app/models/furlough.rb:24: syntax error, unexpected $end, expecting keyword_end 
    end 
    ^
Extracted source (around line #28): 

25:  <td></td> 
26:  <td><%= employee.years_employed %></td> 
27:  <td></td> 
28:  <td><%= employee.remaining_sick_days %></td> 
29:  <td></td> 
30:  <td><%= employee.remaining_vacation_days %></td> 
31:  <td></td> 

當我註釋掉*高清vacation_days_used *和*高清sick_days_used *它經歷,所以我知道這就是我的問題是的,但我只是沒有足夠的理解我在做什麼,但在文檔中找到答案。感謝您的幫助!

+2

的錯誤是在你的furlough.rb文件,所以您需要證明文件,而不是employee.rb文件。 – Doon 2013-05-09 14:23:14

+0

@fotanus在更多信息可用之前,這與Rails無關,而是Ruby代碼問題。 – 2013-05-09 14:23:34

+0

哦,哎呀。是的,我必須在我的模型中切出一個結局。現在我的問題是完全不同的。我是否應該刪除這篇文章,並從新問題開始或編輯它?什麼是好的做法? – Alaric 2013-05-09 14:28:00

回答

2

您還缺少一個end的類。將它添加爲模型文件的最後一行。

def sick_days_used 
    if Furlough.description == "Sick" 
     Furlough.duration 
    end 
    end 
end 
+0

哎呀,那是一個複製粘貼在我的實際模型中,我確實有這樣的結果 – Alaric 2013-05-09 14:20:09

+0

......但不是在休假模式中,上帝,我真的把這個問題搞錯了!:( – Alaric 2013-05-09 14:31:10

1

您錯過了代碼最後一行的「結尾」。

def sick_days_used 
    if Furlough.description == "Sick" 
    Furlough.duration 
    end 
    end 
end 

這是一個「結束」你的班級。

+0

Ack,這是一個複製粘貼錯誤。在我的實際模型中有'結束' – Alaric 2013-05-09 14:20:30

+0

...但是不在休假模型中Geez:我要去我的房間,想想我做了什麼:( – Alaric 2013-05-09 14:31:55

1

這是更Rubyistic(根據您的情況):

def vacation_days_used 
    Furlough.duration if Furlough.description == "Vacation" 
end 

def sick_days_used 
    Furlough.duration if Furlough.description == "Sick" 
end 
+0

是真的,但是不相關,並且可以在評論中提供。 – 2013-05-09 14:27:47

+0

這相當於問題中的含義。 – pungoyal 2013-05-09 14:29:32

+0

根據OP的情況,這將降低「結束」衝突的可能性。因此我在這裏寫下了答案。 – 2013-05-09 14:29:47