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'の 2 つだけです。ただし、従業員モデルで構文を正しくすることに問題があります。

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>

*defvacation_days_used* と *def sick_days_used* をコメントアウトすると、それが通過するので、そこに問題があることはわかっていますが、ドキュメントで答えを見つけるには、自分が何をしているのかまだ十分に理解していません。 . ご協力ありがとうございました!

4

3 に答える 3

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 に答える