Скажем, я хочу сохранить некоторую переменную в моем контроллере. Я хочу инициализировать его в одном действии, увеличивать его в другом и читать в другом. Просто объявление этой переменной с @foo
не работает, потому что @foo
умирает после того, как созданное действие будет визуализировано.
Я не хочу, чтобы эта переменная хранилась в модели.Как сохранить переменную экземпляра для нескольких действий в контроллере?
Есть ли способ сохранить эту переменную, кроме сохранения ее в сеансе?
Кажется, я несколько раз сталкивался с этой простой проблемой, и я хочу знать, как лучше всего это решить.
Кэш - хорошая идея, но я не думаю, что метод flash будет работать, если у вас есть несколько веб-серверов. – Scott
Это зависит от вашего хранилища сеансов, потому что флэш-хэш фактически хранится в сеансе - например, если сеансы отключены, только flash.now будет работать – paulthenerd
Кэш - это хорошая идея. Но если он использует MemoryStore, это для каждой памяти процесса, поэтому, если у вас нет одного процесса, который обрабатывает все запросы, последующие запросы могут не пострадать от процесса, который имеет его в памяти. Если память сохранена memcached, это будет намного лучше. –