我正在尝试为假期请求制作一个应用程序,但我遇到了一个问题。我有一个名为VacationRequest的模型和一个VacationRequest视图,其中将显示结果。
VacationRequest.rb模型
user_ID points activity_type_ID
1 1 8
3 2 8
3 1 8
VacationRequest show.htm.erb
这里我从模型中调用了方法
def skip_holidays
count1 = 0
special_days = Date.parse("2017-05-09", "2017-05-12")
special_days.each do |sd|
if ((start_data..end_data) === sd)
numero = (end_data - start_data).to_i
numro1 = numero - sd
else
numero = (end_data - start_data).to_i
end
end
end
这显示错误并且无法正常工作。请帮帮我!
答案 0 :(得分:0)
您无法通过将多个参数传递给构造函数来创建日期范围。而是调用构造函数两次以创建范围:
special_days = Date.parse("2017-05-09") .. Date.parse("2017-05-12")
或者如果您只想要两个日期,请执行:
special_days = ["2017-05-09", "2017-05-12"].map &:to_date
答案 1 :(得分:0)
这个Date.parse("2017-05-09", "2017-05-12")
不会创建一个范围,只返回解析的第一个参数:
#irb
Date.parse("2017-05-09", "2017-05-12")
=> Tue, 09 May 2017
你可以这样做:
initial = Date.parse("2017-05-09")
final = Date.parse("2017-05-12")
((initial)..final).each do |date|
#rules here.
end
答案 2 :(得分:0)
我对此的处理方法如下:
def skip_holidays
special_days = ["2017-05-09", "2017-05-12"].map(&:to_date)
accepted_days = []
refused_days = []
(start_data..end_data).each do |requested_date|
accepted_days << requested_date unless special_days.include?(requested_date)
refused_days << requested_date if special_days.include?(requested_date)
end
accepted_day_count = accepted_days.count
refused_days_count = refused_days.count
end
这样你迭代了所有请求的日期(范围),检查日期是否是特殊日期 - 如果是,拒绝它,否则接受它。 最后,您可以显示有关已接受和拒绝日期的统计信息。