3

現在、RubyOnRailsデータベースに次のように定義された2つのタイムスタンプフィールドがあります。

starttime:timestamp
endtime:timestamp

現在の時刻を取得し、開始時刻と終了時刻の範囲内にある場合はTRUEを返す単純な関数をコントローラーに記述したいと思います。

どうすればこれを行うことができますか?

4

2 に答える 2

4

これらのモデル設定があるとすると、次のようなことができます。

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?

于 2011-01-20T21:34:43.660 に答える
1
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
于 2011-01-20T22:12:35.430 に答える