私はMerchantモデルを持っています。モデルは、勤務時間モデルのaccepts_nested_attributesを受け取ります。Rails - 販売者が開いている場合に返す方法
マーチャントモデル
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
商人が日 EXにより、複数のworking_hourブロックを持つことができます。8 00:00〜12:00/15:00〜18:00
マーチャントが開いているか閉じているかを返すメソッドを作成したいと思います。どうやってやるの?
にこれを追加しよう - 現在の時間を取得します - 現在の時間がレコードのオープンとクローズの時間の間に来るまでレコードをループする - もしあなたが肯定的なリターンを得なければ - ベンダーは閉鎖されている(私は全てのエントリーを配列に変換するという不吉な考えがあったベンダーがオープンしている数字は意味がありません) - 迅速な質問 - 曜日は関係ありませんか? – MageeWorld
はい、曜日は整数データテーブルの日付(0〜6)です。 私はそのようなことをやろうと思っていましたが、あなたが現在の曜日と現在時刻の後に来るまで、レコードをループする前にループしました。 しかし、私はROR/rubyにはかなり新しいです。私はどのようにそれを行うことができるかわからない。 何か Time.current.wday == working_hour.day ようopen_time close.time –
user1301037
実際に - 私は、クエリのレールガイドを確認したい[ここ](のhttp:/ /guides.rubyonrails.org/active_record_querying.html)。実際には、ベンダーがその日に開いているかどうかをチェックする簡単なクエリが必要だと思っています。それらのレコードのいずれかに時間がある場合 – MageeWorld