Однажды я столкнулся с подобной проблемой, и причина оказалась в том, что пользователь хранился в переменной класса, а не в переменной экземпляра.Скажем, например, что вы аутентифицируете / сохраняете своего пользователя следующим образом:
def current_user
User.current ||= ( login_from_session || login_by_password )
end
В этом случае пользователь будет сохранен в классе, а не экземпляр, и первый пользователь, который войдет в систему, будет сохранен в классе иэто также будет перенесено на следующую сессию пользователей.Чтобы решить эту проблему, это было изменено на
def current_user
@current_user ||= ( login_from_session || login_by_password )
end
Это, конечно, только одна из многих возможностей, но я бы начал устранение неполадок, записав в лог как user_id из сеанса, так и пользовательскую переменную, которую вы используете.чтобы увидеть, есть ли различия.