Это для приложения rails 4.0.2, работающего с ruby 2.0.0-p353.Ловля исключений в вызове рендеринга от помощника рельсов
У меня есть помощник, который имеет следующий метод
def render_feed_row(activity_item)
begin
if activity_item.type == "comment"
render "newsfeed/comment", :item => activity_item
elsif activity_item.type == "post"
render "newsfeed/post", :item => activity_item
else
raise NameError
end
rescue NameError => e # note: NoMethodError is a subclass of NameError
render "newsfeed/other", :item => activity_item
end
end
Но если NoMethodError
поднят в newsfeed/post
частичном, не пойман в этом помощнике. Почему это? Он не отображает newsfeed/other
, это действительно вызывает исключение.
Как ни странно, я поймала 'NoMethodError' при подъеме' NameError' исключение. Пожалуйста, покажите нам вывод 'NoMethodError.superclass' в среде –
Интересно ... Я получаю« NoMethodError in Users :: Profile # transaction_log »из-за« неопределенного метода 'display_name» для nil: NilClass « – Cyrus
Я думаю, что вы должны указать что-то вроде 'rescue NameError, NoMethodError => e'? он позволит поймать 'NoMethodError' в текущем пространстве имен. –