2015-05-06 5 views
0

Я пишу приложение в Rails 4.2 и мой контроллер выглядит следующим образом:Rails 4.2 статус переадресации 200?

class PostsController < ApplicationController 
before_action :require_admin, :except => [:index] 

def index 
    @posts = Post.all 
end 

def show 
    @post = Post.find(params[:id]) 
end 

def new 
    @post = Post.new 
end 

def require_admin 
    unless user_signed_in? && current_user.admin? 
    flash[:alert] = 'You require admin privileges for editing posts' 
    redirect_to root_path 
    end 
end 

так, когда я использую клиент остального отправить запрос, чтобы показать новый или до подписания в, я перенаправлен на signin, которая является тем, что я хочу, и при входе в систему как не-админ, я перенаправляюсь к корневому пути, что также является тем, что я хочу, однако в обоих случаях код состояния - 200 (если он не будет 302?), Что довольно неожиданно, я пытаюсь написать тесты для контроллера, и мне сложно тестировать перенаправления, тесты не работают с Expected <redirect>, got <200> Может ли кто-нибудь помочь мне в указании на то, что здесь происходит?

Я использую разработать для аутентификации

ответ

0

Это должно быть 302, так как это по умолчанию статус для redirect_to (http://apidock.com/rails/ActionController/Base/redirect_to), но вы можете harcode это так:

redirect_to root_path, status: 302 
+0

Я проверить эту документацию и сделал hardcode это также, но тесты терпят неудачу при вышеупомянутой ошибке. – hld619

Смежные вопросы