2010-01-16 10 views
46

Chciałbym zwrócić błąd HTTP 401 jako część mojej metody permission_denied dla declarative_authorization.Szyny: Zwróć 401?

# triggered when a user accesses a page that they don't have access to 
def permission_denied 
    # render my default 401 error page? 
end 

Jak to zrobić? (Odpuść pytanie, czy to głupie ... Wiem, jak renderować stronę 401.html w moim publicznym katalogu, ale nie sądzę, że zwróci ona nagłówek HTTP 401, który jest tym, czego szukam.)

+0

:status pełną listę statusów można znaleźć tutaj: http://billpatrianakos.me/blog/2013/10/13/list-of-rails-status-code-symbols/ – Kris

Odpowiedz

77

Możesz dodać opcję

def permission_denied 
    render :file => "public/401.html", :status => :unauthorized 
end 
+0

Idealny. Dzięki!! – neezer

+3

Dodaj ': layout => false', aby wyczyścić stronę – Leopd

+3

Podanie formatu w nazwie pliku jest ewidentnie przestarzałe, więc nowym sposobem będzie" render: file => "public/401",: status =>: nieautoryzowane' . –