Rails настраиваемые страницы ошибок, различное расположение внутри области - PullRequest
0 голосов
/ 20 ноября 2018

Я создал несколько пользовательских страниц ошибок в Rails, которые прекрасно работают.

  match '/404', to: 'errors#not_found', via: :all
  match '/500', to: 'errors#internal_server_error', via: :all

Контроллер выглядит так:

class ErrorsController < ApplicationController
  def not_found
    render status: 404
  end

  def internal_server_error
    render status: 500
  end
end

Отображает пользовательский шаблон Rails, панель навигации приложений, нижний колонтитул и т. Д.

в application.rb Я установил config.exceptions_app = routes.

Но ресурс «Цитировать» можно «внедрить» через iFrames на других сайтах. Это представление iFrame намеренно редкое. У него нет панели навигации, нет нижнего колонтитула, это 100% ширина, высота.

В тех случаях, когда эта «цитата» недоступна, я бы хотел использовать 404 в том же «разреженном макете» - без навигационной панели, без нижнего колонтитула, а также с шириной 100%.

У

Quote есть такой URL:
http://localhost:3000/@stoplion/quote/18.
Так что в основном это: имя пользователя, ресурс, resource.id

У меня есть это область действия: доля, модуль: «доля», только:% i [показать обновление] сделать ресурсы: пользователи, путь: '', только: [], ограничения: {user_id: user_id_pattern} do соответствует '/ 404', чтобы: 'errors # not_found', через:: all соответствует '/ 500', чтобы: 'errors # internal_server_error', via:: all ресурсы: цитата конец конец

И, наконец ... Я настроил еще один errors_controller в области действия share

class Share::ErrorsController < ErrorsController
  layout 'share'
end

layout share - это макет без навигационной панели и т. Д. *

Но это просто обычный 404 с обычным макетом приложения (navbar, footer и т. Д.)

У кого-нибудь есть идеи, как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...