2010-01-16 8 views
46

Ich möchte einen HTTP 401 Fehler als Teil meiner permission_denied Methode für declarative_authorization zurückgeben.Schienen: Eine 401 zurückgeben?

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

Wie würde ich das tun? (Entschuldigen Sie die Frage, wenn es dumm ist ... Ich weiß, wie man die 401.html Seite in mein öffentliches Verzeichnis rendert, aber ich glaube nicht, dass es den 401 HTTP Header zurückgibt, was ich suche.)

+0

Eine vollständige Liste der Zustände finden sich hier: http://billpatrianakos.me/blog/2013/10/13/list-of-rails-status-code-symbols/ – Kris

Antwort

77

Sie die :status Option hinzufügen

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

Perfekt. Vielen Dank!! – neezer

+3

Fügen Sie ': layout => false 'hinzu, um die Seite sauberer zu machen – Leopd

+3

Das Format im Dateinamen zu übergeben, ist offensichtlich veraltet, also würde der neue Weg lauten: render: file =>" public/401 ",: status =>: unauthorised . –

Verwandte Themen