为什么我无法显示来自我的模型的未来三个未来事件?
问题描述:
我试图从我的数据库中显示接下来的三个未来事件,但下面的代码不显示任何内容。我看不出我做错了什么。为什么我无法显示来自我的模型的未来三个未来事件?
这是事件控制器:
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)
现在我得到这个错误:错误的参数数目(2 1)。我已经用完整的控制器更新了这个问题。 –
与错误关联的行号或方法名称是什么? –
错误突出显示第4行,即您推荐的新代码。 –