当我导航到我的应用程序的管理界面中的某个资源时,我收到状态500错误。为什么会这样?
这是我的日志:
2011-06-16T21:33:35+00:00 app[web.1]: Started GET "/admin/timeline_events" for 151.205.162.106 at 2011-06-16 14:33:35 -0700
2011-06-16T21:33:35+00:00 app[web.1]:
2011-06-16T21:33:35+00:00 app[web.1]: NoMethodError (undefined method `map' for nil:NilClass):
如何在我的应用中找到map
的位置?
好的,所以我认为我的应用程序助手中的这段代码可能导致了这个
def render_timeline(events, title)
events.map do |event|
render(:partial => "timeline_events/#{event.event_type}", :locals => {:event => event, :title => title})
end.join.html_safe
end
代码基本上呈现不同的部分,具体取决于创建源的事件类型。
答案 0 :(得分:1)
看起来你正在调用方法,但是将nil
作为events
参数传递。
确保在没有要渲染的事件时,传入一个空数组而不是nil
。
您可以通过添加以下方法在方法体中捕获:
events ||= []
作为第一行,或者您可以使用默认参数:
def render_timeline(events = [], title)
或者您可以更改生成events
参数的方式,以便它永远不会返回nil
。