我需要在模型中解决这段代码的两个问题。据我所知,实例变量中的值将在第一次执行时保存,但由于它是日期和时间,因此每次调用该方法时都应该执行它们。怎么绕过那个?其次,如何访问downtime
方法中的实例变量?
def entry_time
@day = DateTime.now.wday
@date = Date.current
@time = DateTime.now.hour
if downtime
errors.add(:_, "Please submit your request during working hours")
end
end
def downtime
holidays || @time < 9 || @time > 17 || @day == 6 || @day == 0
end
答案 0 :(得分:0)
setTimeout
重复某个功能,并实现您的目标。
关于第二个问题,当您向@
附加变量时,它可供整个班级使用,您可以随处访问它。所以,是的,你可以用downtime
访问所有实例变量,就像你在任何其他方法中访问它们一样。
答案 1 :(得分:0)
试试这个:
def entry_time
@day = DateTime.now.wday
@date = Date.current
@time = DateTime.now.hour
if downtime(@day,@date,@time)
errors.add(:_, "Please submit your request during working hours")
end
end
def downtime(day,date,time)
holidays || time < 9 || time > 17 || day == 6 || day == 0
end