2015-06-10 3 views
0

В моем routes.rb, у меня есть следующие:Перенаправление Пользовательские страницы ошибок в Rails

%w(401 404 422 500).each do |code| 
    get code, :to => "errors#show", :code => code 
    end 

Это создает следующие маршруты в соответствии с граблями маршрутам:

GET  /401(.:format)  errors#show {:code=>"401"} 
    GET  /404(.:format)  errors#show {:code=>"404"} 
    GET  /422(.:format)  errors#show {:code=>"422"} 
    GET  /500(.:format)  errors#show {:code=>"500"} 

Вот мой Ошибки контроллера :

class ErrorsController < ApplicationController 
    def show 
     Rails.logger.debug("ERROR WITH STATUS #{status_code.to_s}") 
     render status_code.to_s, :status => status_code 
    end 

    def unauthorized 
     render "401" 
    end 

    protected 

    def status_code 
     Rails.logger.debug("STATUS CODE: #{params[:code]}") 
     params[:code] || 500 
    end 
end 

И в моих взглядах, у меня есть следующие страницы в папке «ошибки»

  • 401.html.erb
  • 404.html.erb
  • 422.html.erb
  • 500.html.erb

Я хотел бы перенаправить на ошибку страницы в контроллере. Если бы я хотел перенаправить на 401, как бы мне это сделать?

+0

все маршруты указывая к тому же действию ..? –

+0

да, я включил мой контроллер выше – scientiffic

ответ

0

я был в состоянии решить эту проблему, добавив этот маршрут к моему routes.rb:

get "errors/unauthorized" 

Это вызывает действие «несанкционированный» в моем контроллере ошибок:

def unauthorized 
    render "401" 
end 
+0

это то, что вы искали ..... смешно ..... :) –