0

我正在尝试编写一个应用程序来计算病假/休假天数以及员工在任一类别中的可用时间。在我的 Employee 模型中,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),表单是一个单选按钮,其中仅有的两个选项是'Sick''Vacation'。但是,我在Employee模型中正确使用语法时遇到了问题:

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 holiday_days_used* 和 *def sick_days_used* 时,它会通过,所以我知道这就是我的问题所在,但我只是对我正在做的事情没有足够的了解,无法在文档中找到答案. 谢谢您的帮助!

4

3 回答 3

2

你又少了一end门课。将其添加为模型文件的最后一行。

  def sick_days_used
    if Furlough.description == "Sick"
      Furlough.duration
    end
  end
end
于 2013-05-09T14:07:25.223 回答
1

您错过了代码最后一行的“结束”。

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

这是一个“结束”你的课。

于 2013-05-09T14:07:18.120 回答
1

这更 Rubyistic(根据您的情况):

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

def sick_days_used
    Furlough.duration if Furlough.description == "Sick"
end
于 2013-05-09T14:27:10.023 回答