Заменить страницу ошибки NotFound по умолчанию Sinatra

Есть ли способ переопределить страницу с ошибкой NotFound по умолчанию sinatra («Sinatra не знает эту частушку»)? Я хочу, чтобы sinatra показывала только простую строку как «Метод не найден», когда он не находит правильный маршрут, но когда я вызываю ошибку 404 внутри маршрута, я хочу, чтобы она показывала переданное сообщение об ошибке.

Реализация блока not_found следующим образом:

 not_found do
    'Method not found.' 
  end

работает, но это недопустимый вариант, так как я хочу иметь возможность выдавать свои собственные сообщения об ошибках NotFound из таких маршрутов:

 get '/' do
    begin
      # some processing that can raise an exception if resource not found
    rescue => e
      error 404, e.message.to_json
    end
  end

Но, как и ожидалось, блок not_found отменяет мою ошибку сообщение.

10
задан João Pereira 9 December 2011 в 22:02
поделиться