1

В проекте, который использует restful_authentication с acts_as_state_machine и активации электронной почты, я получаю двойную визуализацию при каждом действии пользователя, активирующего действие по ссылке электронной почты.DoubleRenderError в restful_authentication с act_as_state_machine при активации пользователей

Я использую по умолчанию

def activate 
    self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code]) 
    if logged_in? && !current_user.active? 
    current_user.activate! 
    flash[:notice] = "Signup complete!" 
    end 
    redirect_back_or_default('/') 
end 

для активации, и по умолчанию

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

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

Ошибка двойной визуализации возникает при рендеринге главной страницы страницы/дома, которая маршрутизируется как «/».

Что я должен был искать?

ответ

1

Акт как машина состояния иногда имеет некоторое нечетное поведение, когда сохраненная запись, записанная в базу данных, будет не синхронизирована с объектом в памяти. Бьюсь об заклад, у вас есть ситуация, когда объект ruby, соответствующий вновь активированному пользователю, не обновляется, даже если поле в db устанавливается (наоборот).

Мне нужно будет увидеть действие контроллера, которое на самом деле выполняется, чтобы отобразить маршрут, который вы настроили, чтобы соответствовать «/», но я уверен, у вас есть тонко непоследовательные случаи в этом действии, которые устраняются этой несогласованностью в AASM. Попробуйте перезагрузить пользовательский объект в начале действия этого контроллера, чтобы узнать, не исчезла ли проблема. Если вы не начинаете отладку, убедитесь, что ваши изменения состояния фактически сохраняются в db.

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

  • Нет связанных вопросов^_^