Rails - 商家开放时返回的方法

时间:2016-10-05 01:30:08

标签: ruby-on-rails ruby

我有一个商家模型。模型接受工作时间模型的accept_nested_attributes。

商家模式

class Merchant < ApplicationRecord
  has_many   :working_hours, inverse_of: :merchant, dependent: :destroy
  accepts_nested_attributes_for :working_hours, reject_if: :all_blank, allow_destroy: true
end

工作时间模型

class WorkingHour < ApplicationRecord
  belongs_to :merchant 
end

working_hours表有:

class CreateWorkingHours < ActiveRecord::Migration[5.0]
  def change
    create_table :working_hours do |t|
      t.integer :day
      t.time :open_time
      t.time :close_time
      t.references :merchant, foreign_key: true
      t.timestamps
    end
  end
end

商家白天可以有多个工作小时  例如:8:00至12:00 / 15:00至18:00。

我想创建一个方法,以便在商家被打开或关闭时返回。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

<强>更新 我们应该失去self.部分

尝试将此添加到您的商家模型

def open?
    self.working_hours.any? { |wh|
        (wh.open_time.hour..wh.close_time.hour).cover?(Time.current.hour)
    }
end