Подтвердить что ты не робот

Почему мы должны избегать использования переменных класса @@в rails?

Почему нам следует избегать использования переменных класса @@в rails? Есть ли там лазейки безопасности. Пожалуйста, ответьте, поскольку я новичок с рельсами. и я использую переменную экземпляра @variable_name. Я пробовал один раз @@variable_name.

Я знаю только о переменной класса, переменная класса разделяется между объектом

Но я действительно хотел бы знать Почему нам следует избегать использования переменных класса @@в rails?

4b9b3361

Ответ 1

Просто потому, что они не являются потокобезопасными. Многие рельсы = поддерживаемые серверы многопоточные. Это означает, что в любой момент времени может быть несколько запущенных экземпляров вашего приложения, и любой запрос одного из ваших пользователей будет произвольно назначен одному из них. Переменные класса не разделяются между процессами, поэтому существует вероятность того, что ваша переменная класса будет отличаться в последующем запросе.

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

Если вы хотите, чтобы функциональность была похожа на переменные класса, я настоятельно рекомендую вам заглянуть в хранилища ключевых значений, такие как Memcached или Redis.