Шаблон Erb не отображается при использовании с гарантией обработки исключений - PullRequest
0 голосов
/ 03 июня 2011

Я столкнулся с проблемой при написании некоторого кода синатры. У меня есть следующий блок кода

begin
    # do stuff here 
rescue SomeException::Class => ex
  flash.now[:err] = "some error " + ex.message
ensure
  erb :content, :layout => :mainlayout 
end

У меня проблема в том, что вывод erb выводится только частично, однако mainlayout.erb отображается, content.erb не включается.Я использовал ту же строку erb в других частях приложения, и они отлично работают.

Следующее фактически работает и является обходным решением, которое я в настоящее время использую

    begin
      # do stuff here 
      erb :content, :layout => :mainlayout 
    rescue SomeException::Class => ex
      flash.now[:err] = "some error " + ex.message
      erb :content, :layout => :mainlayout 
    end 

Любые идеи дляпочему это не завершается при условии обеспечения?Я хотел бы использовать его как более элегантный.

1 Ответ

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

попробуйте использовать return erb :content, :layout => :mainlayout подробнее о ensure здесь - http://blog.leshill.org/blog/2009/11/17/ensure-with-explicit-return.html

...