如果......那么...语法问题

时间:2013-05-09 14:04:55

标签: ruby ruby-on-rails-3.2

我正在尝试编写一个应用程序,用于计算病假/休假日以及员工在任何一个类别中可用的数量。在我的员工模型中, 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 *时,它会通过,所以我知道这就是我的问题所在,但我对我正在做的事情还没有足够的理解但尚未找到在文档中回答。谢谢你的帮助!

3 个答案:

答案 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