我正在尝试编写一个应用程序,用于计算病假/休假日以及员工在任何一个类别中可用的数量。在我的员工模型中, 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
模型中有一个名为:description 的字符串列,用于处理日期范围(名为 Furlough ),表单是一个单选按钮,其中只有两个选项是'生病'和'假期'。但是,我遇到了在员工模型中正确使用语法的问题:
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>
当我评论出* def vacation_days_used *和* def sick_days_used *时,它会通过,所以我知道这就是我的问题所在,但我对我正在做的事情还没有足够的理解但尚未找到在文档中回答。谢谢你的帮助!
答案 0 :(得分:2)
您缺少一个end
课程。将其添加为模型文件中的最后一行。
def sick_days_used
if Furlough.description == "Sick"
Furlough.duration
end
end
end
答案 1 :(得分:1)
您错过了代码最后一行的“结束”。
def sick_days_used
if Furlough.description == "Sick"
Furlough.duration
end
end
end
这是一个“结束”你的班级。
答案 2 :(得分:1)
这更像是Rubyistic(根据你的情况):
def vacation_days_used
Furlough.duration if Furlough.description == "Vacation"
end
def sick_days_used
Furlough.duration if Furlough.description == "Sick"
end