Вопрос по session, ruby – Как установить / получить переменные сессии в приложении Rack?

18
use Rack::Session::Pool
...
session[:msg]="Hello Rack"

РЕДАКТИРОВАТЬ: слово сеанс, кажется, не решить. Я включил промежуточное ПО пула сеансов в свой config.ru и попытался установить переменную в файле ERB (я использую Ruby Serve), и он жалуется на «неопределенную локальную переменную или метод« сеанс »& quot;

Спасибо!

что именно не работает? помощник сеанса вообще не работает или просто сеанс [: msg] не установлен? что дает session.inspect? oliverbarnes

Ваш Ответ

2   ответа
0

Вам нужно загрузитьrack::session следующий модуль, вероятно, печенье, как здесь http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html

Это вроде объясняет это примером.

28

session это метод, который является частью некоторых веб-фреймворков, напримерSinatra а такжеРельсы как естьsession методы. гладкийrack приложения не имеютsession метод, если вы не добавите один самостоятельно.

Хэш сеанса хранится в хеше env стойки под ключомrack.sessionтак что вы можете получить к нему доступ следующим образом (при условии, что вы назвали среду стойки для своего приложения)env):

env['rack.session'][:msg]="Hello Rack"

В качестве альтернативы, вы можете использовать встроенные в стойкуrequest object, как это:

request = Rack::Request.new(env)
request.session[:msg]="Hello Rack"
Error: User Rate Limit Exceeded rebnoob
Error: User Rate Limit ExceededRack::RequestError: User Rate Limit ExceededenvError: User Rate Limit ExceededenvError: User Rate Limit ExceededRack::RequestError: User Rate Limit Exceeded
Error: User Rate Limit ExceededenvError: User Rate Limit ExceededRack::ResponseError: User Rate Limit ExceededschemeError: User Rate Limit ExceededhostError: User Rate Limit Exceeded
Error: User Rate Limit Exceededrequest.env['rack.session'][:msg]="Hello Rack"Error: User Rate Limit ExceededRack::RequestError: User Rate Limit ExceededenvError: User Rate Limit Exceededrequest.env[...Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded#envError: User Rate Limit ExceededRack::RequestError: User Rate Limit ExceededRack::Request Error: User Rate Limit ExceededenvError: User Rate Limit Exceeded#envError: User Rate Limit ExceededRack::RequestError: User Rate Limit ExceededenvError: User Rate Limit Exceededwhy so when the original env is still available everywhere, already?Error: User Rate Limit ExceededRack::RequestError: User Rate Limit Exceeded

Похожие вопросы