2013-12-05 3 views
0

Позвольте мне немного пояснить код, я пытаюсь заставить пользователя оставаться в действии редактирования до тех пор, пока пользователь не станет полностью действительным. До сих пор у меня есть следующий код в контроллере приложения:Double Render Issue

def check_privileges! 
    redirect_to "https://stackoverflow.com/users/edit" until current_user.valid? 
end 

registrations_controller.rb

before_filter :check_privileges!, only: [:new, :create] 

jobs_controller.rb

before_filter :check_privileges!, only: [:index] 

Теперь, когда я нажимаю на ссылку на рабочие места # индекс это дает мне следующую ошибку. Я не могу видеть редирект работы # индекс

AbstractController::DoubleRenderError in JobsController#index 

Понятия не имею, как разобраться в этом, я не пробовал and return, но я не могу понять это. Я делаю это весь день, так как пользователь должен завершить свой профиль, прежде чем у них будет полный доступ к приложению.

Любые подсказки, это действительно меня беспокоит, и у меня нет друзей-программистов, которые могли бы помочь мне.

ответ

1

Я думаю, что вы хотите unless не until ... until вызовет петлю redirect_to (что приводит к нескольким переадресациям), если current_user не является действительным.

Try:

def check_privileges! 
    redirect_to "https://stackoverflow.com/users/edit" unless current_user.valid? 
end 
+0

OMG после 13 часов, глядя на экран, как я мог пропустить это! D'oh & Thanks –

+0

Не стоит беспокоить человека - иногда нужен еще один набор глаз. :) – CDub

+1

Посмотрите вперед, когда я могу сделать парное программирование на работе –