导航管理界面时我的实时应用程序出错

时间:2011-06-16 21:36:20

标签: ruby-on-rails ruby ruby-on-rails-3 admin

当我导航到我的应用程序的管理界面中的某个资源时,我收到状态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

代码基本上呈现不同的部分,具体取决于创建源的事件类型。

1 个答案:

答案 0 :(得分:1)

看起来你正在调用方法,但是将nil作为events参数传递。

确保在没有要渲染的事件时,传入一个空数组而不是nil

您可以通过添加以下方法在方法体中捕获:

events ||= []

作为第一行,或者您可以使用默认参数:

def render_timeline(events = [], title)

或者您可以更改生成events参数的方式,以便它永远不会返回nil