Я хочу реализовать функциональность сообщений для отображения на разных страницах моего сайта. Я создал модель для этого, которая содержит поля, скажем page
, message
, active
. Если active=false
сообщение не будет отображаться. Это прекрасно работает.Глобальная переменная модели Rails
Теперь я хочу добавить возможность включения/выключения всех сообщений в течение некоторого времени. Я не хочу обновлять каждое сообщение и устанавливать active=false
, потому что 1) может быть много сообщений, 2) мне нужно было бы сохранить, какие сообщения были активны/неактивны в момент выключения, чтобы восстановить исходное состояние при возврате на.
Это было бы очень удобно, если бы я мог использовать новую переменную «class-wide» @@active
в моей модели. Однако использование многопоточного приложения (я использую unicorn
) может вызвать проблемы, потому что @@active
не будет использоваться для всех процессов.
Я не смог найти хорошие решения для этого, может быть, кто-то может помочь?
Если вы создали переменную экземпляра в своем прикладном контроллере, «единорог» сделает ее видимой во всех процессах? Если это так, вы можете рассмотреть этот маршрут: используйте переменную экземпляра в вашем 'application_controller.rb' как« переменную состояния »для сеанса. – lurker