0

我试图从我的数据库中显示接下来的三个未来事件,但下面的代码没有显示任何内容。我看不出我做错了什么。

这是事件控制器:

class EventsController < ApplicationController
  def show
    @event = Event.where(:slug => params[:slug]).first
    @future_events = Event.where('end_date > ?', Date.today).order('end_date ASC').limit(3)

    General.first.get_blog
    General.first.get_twitter

    if @event.nil?
      @event = Event.first
    end

    @days = [
      { speakers: @event.sessions.day1_speakers, workshops: @event.sessions.day1_workshops },
      { speakers: @event.sessions.day2_speakers, workshops: @event.sessions.day2_workshops }
    ]
  end
end

这是事件视图:

<% @future_events.first(3).each do |e |  %>
  <div class="fourcol aboutColumn">
    <h3><%= e.title %></h3>
    <p><%= e.start_date.strftime("%e %B %Y") %>, <%= e.venue_title %></p>
    <p><%= e.event_description %></p>
  </div>
<% end %>
4

1 回答 1

1

您应该构建查询以仅返回您需要的事件:

Event.where('end_date > ?', Date.today).order('end_date ASC').limit(3)

除此之外,我看不出为什么什么都没有显示。你能发布你的整个控制器方法吗?

更新:

这是 Mongoid 的等效查询:

Event.where(:end_date.gt => Date.today).sort(:end_date => 1).limit(3)
于 2013-06-20T21:59:10.443 回答