我试图从我的数据库中显示接下来的三个未来事件,但下面的代码什么也没显示。我无法看到我做错了什么。
这是事件控制器:
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 %>
答案 0 :(得分: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)