ruby-on-rails - ruby 检查当前日期是否在日期记录内

标签 ruby-on-rails ruby

假设我有一个名为 Absence 的模型,看起来像这样

         :id => :integer,
:employee_id => :integer,
 :start_date => :date,
   :end_date => :date

我需要检查员工今天是否离开,如果离开则返回 true。如果某人有缺勤记录,则他不在

  1. 开始日期是今天或今天之前,
  2. 结束日期为 null、今天或早于今天。

所以我需要一个类似于 Employee 的方法

def is_away
  ?????
end

请帮忙!

最佳答案

我会做这样的事情:

# add this to absence.rb
def covers_today?
  (start_date..end_date).cover?(Date.today)
end

# add this to employee.rb
def away?
  absences.any?(&:covers_today?)
end

完成此操作后,只需调用 employeeaway? 即可:

@employee.away? 
# => true, if employee has an absense that covers the current date

关于ruby-on-rails - ruby 检查当前日期是否在日期记录内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549547/

相关文章:

javascript - 从 Rails Controller 获取浏览器 Cookie

ruby-on-rails - Rails 3.1 Assets 管道 - 为什么我的图像不预编译用于生产?

ruby - 找到模块子项的更好方法?

ruby - 使用 ruby​​ gem 时什么时候需要 'require'?

ruby - 获取ruby中所有字符的索引

ruby-on-rails - 如何在 Rails 3.0 应用程序中使用来自 Twitter 的 Bootstrap?

ruby-on-rails - rails 上的 ruby 。付费发表文章

ruby-on-rails - 如何对 quickbooks-ruby 进行故障排除

ruby-on-rails - Rails 3.2 Assets 管道和 RequireJS

ruby - 我可以删除 Ruby 中的方法别名吗?