Как установить переменные сеанса с app.get () в консоли Ruby on Rails? - PullRequest
0 голосов
/ 11 июня 2010

Как вручную установить сеанс при вызове app.get() в script/console?

Например, я хочу получить доступ к авторизованной странице, но она всегда перенаправляет меня на страницу входа. Как установить сеанс перед вызовом app.get(), чтобы я мог сделать авторизованный вызов на эту страницу?

Ответы [ 4 ]

0 голосов
/ 27 августа 2013

Сеанс доступен для чтения (http://tektastic.com/2006/12/ruby-on-rails-how-to-load-session.html), если вы извлекаете временный файл, но если вы не используете отладчик, то хеш сеанса не сохраняется таким образом, чтобы его можно было изменить из консоли.

0 голосов
/ 11 июня 2010

Вот уродливый обходной путь, который я сделал.

#Type in script/console
include ActionController::TestProcess
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@controller = SomeController.new
get 'action', {}, {:signed => 42} #action, params, session
#now @response has the updated response object.

Перед выполнением еще одного get()/post() etc убедитесь, что вы сбрасываете @controller, вызывая @controller = SomeController.new, иначе @response не обновляется при последующих запросах.

0 голосов
/ 11 июня 2010

http://guides.rubyonrails.org/testing.html

Это поможет вам ..

0 голосов
/ 11 июня 2010

зависит от того, что вы используете для аутентификации сеанса. если вы сделаете app.class, вы увидите, что это приложение ActionController::Integration::Session. Что вам нужно сделать, так это аутентифицировать себя, тогда попадание на ваши запрещенные страницы должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...