Ruby-on-Rails: Как избавиться от страницы «вас перенаправляют»

Я отменяю ответ на отказ Devise, чтобы установить код состояния 401. Однако, когда пользователю не удается войти в систему, он перенаправляется на страницу со ссылкой «вас перенаправляют». Если я удалю этот : status => 401 из перенаправления, он будет работать нормально.

class CustomFailure < Devise::FailureApp
    def redirect_url
      new_user_session_url(:subdomain => 'secure')
    end

    def respond
        if http_auth?
           http_auth
        else
           store_location!
           flash[:alert] = i18n_message unless flash[:notice]
           redirect_to redirect_url, :status => 401
        end
    end
end

edit

В качестве альтернативы я хотел бы отобразить флэш-сообщение и остаться на той же странице, но добавив эту строку кода:

render :text => "unauthorized", :status => 401

заставляет Ruby жаловаться:

undefined method `render' for #<CustomFailure:0x00000103367f28>

Что здесь происходит?

18
задан David 30 November 2010 в 06:50
поделиться