def self.determine_created_at(created_at)
Rails.logger.info(created_at)
case(created_at)
when "Today"
where(created_at: Date.today)
when "Yesterday"
where(created_at: Date.yesterday)
when "This Week"
where(created_at: (Date.today.at_beginning_of_week..Date.today.at_end_of_week))
when "This Month"
where(created_at: Date.today.at_beginning_of_month..Date.today.at_end_of_month)
when created_at.upcase.include?("MONTHS")
where(created_at: (created_at.split[1].to_i.month.ago.to_date.beginning_of_month..Date.today.end_of_month))
when created_at.match(/Hours/)
Rails.logger.info "INSIDE HOURS"
where(created_at (created_at.split[1].to_i.hours.ago..DateTime.now))
when created_at.upcase.include?("MINUTES")
where(created_at: (created_at.split[1].to_i.minutes.ago..DateTime.now))
end
end
这是我用于小型过滤器实现的代码。当我发送像8 hours ago
这样的字符串时,它无法正常工作。这是未选择的必需案例,并且未打印INSIDE HOURS
。 “分钟”和“月份”都不起作用。其余的都在工作。
答案 0 :(得分:0)
正则表达式直接在when
语句的case
子句中指定:
case created_at
...
when /hours/
...
end