Мы пытаемся направить нового пользователя, чтобы заполнить информационный бюллетень при первом входе в систему, а затем останемся на своей панели мониторинга в остальное время.Devise Redirect First Login
Идя на этот пост здесь: devise first login with rails
Мы добавили это к нашему контроллеру приложения:
def
after_sign_in_path_for(user)
redirect_to ((current_user.sign_in_count == 0) ? new_fact_sheet_path : dashboard_index_path)
end
Но мы получаем эту ошибку:
«AbstractController :: DoubleRenderError в Devise :: RegistrationsController # create Рендеринг и/или переадресация вызывались несколько раз в этом действии. Обратите внимание, что вы можете только вызывать рендеринг или перенаправление и не более одного раза за действие. поэтому обратите внимание, что ни перенаправление, ни рендер не прекращают выполнение действия, поэтому, если вы хотите выйти из действия после перенаправления, вам нужно сделать что-то вроде «redirect_to (...) и return».
Мы думали, что мы переопределяем стандартную маршрутизацию Devise с перенаправлением в контроллере приложения?
Решение: Это оказалось двухкомпонентным решением, как указано в комментариях ниже. Код, который работал:
def
after_sign_in_path_for(user)
((current_user.sign_in_count == 1) ? new_fact_sheet_path : dashboard_index_path)
end
Спасибо! Это в сочетании с информацией из нижеприведенного ответа сделало трюк. Удаление redirect_to избавилось от нашей ошибки, но не привело нас к правильной странице. Мы сделали корректировку, как указано ниже, чтобы получить правильное поведение из Devise. – Sandy