現在、RubyOnRailsデータベースに次のように定義された2つのタイムスタンプフィールドがあります。
starttime:timestamp
endtime:timestamp
現在の時刻を取得し、開始時刻と終了時刻の範囲内にある場合はTRUEを返す単純な関数をコントローラーに記述したいと思います。
どうすればこれを行うことができますか?
現在、RubyOnRailsデータベースに次のように定義された2つのタイムスタンプフィールドがあります。
starttime:timestamp
endtime:timestamp
現在の時刻を取得し、開始時刻と終了時刻の範囲内にある場合はTRUEを返す単純な関数をコントローラーに記述したいと思います。
どうすればこれを行うことができますか?
これらのモデル設定があるとすると、次のようなことができます。
def currently_in_range(model)
now = DateTime.now
model.starttime < now && now < model.endtime
end
ただし、おそらくモデルのクラスに入れる必要があります。何かのようなもの:
class Thing < ActiveRecord::Base
...
def current?
now = DateTime.now
starttime < now && now < endtime
end
...
end
次に、コントローラーで電話をかけることができますmodel.current?
class YourModel < ActiveRecord::Base
def active?
(starttime..endtime) === Time.now.to_i
end
end
class YourController < ApplicationController
def show
@your_model = YourModel.first
@your_model.active?
end
end