为什么我无法显示来自我的模型的未来三个未来事件?

问题描述:

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

这是事件控制器:

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 %> 

您应该构建您的查询只返回的事件,您需要:

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) 
+0

现在我得到这个错误:错误的参数数目(2 1)。我已经用完整的控制器更新了这个问题。 –

+0

与错误关联的行号或方法名称是什么? –

+0

错误突出显示第4行,即您推荐的新代码。 –