ruby-on-rails - 模型的 Rails 灵活开放时间

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

我有一个模型 Garage,它应该有开放时间。但是开放时间应该很灵活。例如,一周中的每一天都可以有不同的时间,并且应该可以添加休息时间。但也有可能时间没有变化或仅持续几天。

现在我想知道实现它的好方法是什么。有任何想法吗?我现在被这个困住了几天:(

最佳答案

我认为到目前为止的答案根本没有解决问题。只是想想我的脚,但我可能有这样的模式(带有示例数据):

id | garage_id | date       | week_day | start_time | end_time
--------------------------------------------------------------
1  |        10 |       NULL |        0 |       NULL |    NULL
2  |        10 |       NULL |        1 |      09:00 |   17:30
3  |        10 |       NULL |        2 |      09:00 |   17:30
4  |        10 |       NULL |        3 |      09:00 |   17:30
5  |        10 |       NULL |        4 |      09:00 |   17:30
6  |        10 |       NULL |        5 |      09:00 |   17:00
7  |        10 |       NULL |        6 |      11:00 |   16:00
8  |        10 | 2013-12-25 |     NULL |       NULL |    NULL

此示例显示一周中每一天的开放时间,以及车库在圣诞节关闭的异常(exception)情况。应用逻辑会优先考虑OpeningTimesdate指定的列,然后恢复为 week_day如果没有 date 的匹配列找到了。

def is_open?
  if (exc = opening_times.find_by_date(Date.today))
    (exc.start_time..exc.end_time).cover?(Time.now)
  else
    tdy = opening_times.find_by_week_day(Date.today.wday)
    (tdy.start_time..tdy.end_time).cover?(Time.now)
  end
end

我认为这提供了您所追求的灵 active 。

关于ruby-on-rails - 模型的 Rails 灵活开放时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535349/

相关文章:

ruby-on-rails - 通过与 Ruby-on-Rails 4.1 的关系在 RSpec 3.1.0 和 has_many 上遇到麻烦

ios - 登台环境中的 SSL 请求失败

ruby-on-rails - Rails 3 新表单助手和 ERB 的语法错误

ruby-on-rails - 没有自己的表的 Rails 嵌套模型与数据库之间的转换

ruby-on-rails - 在 RSpec 中使用 let 和 subject 时未定义的方法响应

Ruby 数学函数内存

mysql - rails 连接 2 个表 HABTM

ruby-on-rails-3 - 如何强制 rails 存储空字符串?

ruby-on-rails - 从 ruby​​ 守护进程中调试 osascript 执行

ruby-on-rails - Rails 未初始化的常量 Bundler (NameError)