Ошибка в моем живом приложении при навигации по интерфейсу администратора - PullRequest
0 голосов
/ 17 июня 2011

При переходе к определенному ресурсу в интерфейсе администратора для моего приложения я получаю ошибку 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 Ответ

1 голос
/ 17 июня 2011

Похоже, вы вызываете метод, но передаете nil в качестве аргумента events.

Убедитесь, что при отсутствии событий, подлежащих визуализации, вы передаете пустой массив вместо nil.

Вы можете поймать это в теле метода, добавив:

events ||= []

в качестве первой строки, или вы можете использовать аргументы по умолчанию:

def render_timeline(events = [], title)

или вы можете просто изменить способ генерации аргумента events, чтобы он никогда не возвращал nil.

...