type のフィールドをEvent
含むモデルがあります。がすでにアクティブかどうか、またはまだ発生していないかどうかを知らせる単純なモデル メソッドがあります。start_date
datetime
start_date
def future_event?
self.start_date >= DateTime.now
end
次に、自分のビューで、どのビューをロードする必要があるかを確認します (イベントが現在発生しているかどうか、またはイベントがまだ将来発生しているかどうかに基づいて)。両方を Time オブジェクトに変換したり、文字列の書式設定など、さまざまなことを試しました...何も機能していないようで、同じビューが常にレンダリングされます。これが私のビューコードです:
<% if @event.future_event? %>
<%= render "pages/main_container_offline" %>
<%= render "pages/sidebar_offline" %>
<% else %>
<%= render "pages/main_container_online" %>
<%= render "pages/sidebar_live" %>
<% end %>
何か案は?
編集:
の出力は次の@event.start_date
とおりです。2012-06-10 10:20:00 UTC
の出力は次のDateTime.now
とおりです。2012-06-10T10:35:30-05:00
ご覧のとおり、フォーマットが異なります。これが問題かどうかはわかりません。
を設定するコントローラーメソッドは次の@event
とおりです。
def index
@event = Event.active.order("start_date ASC").first
end
## model
scope :active, lambda {
where("end_date >= ?", DateTime.now)
}