I am attempting to investigate the object state during a login process.
I need instruction in the correct technique to emulate filling out an
html form and submitting it within the rails console.
Given a login form at /user_session/new with fields :username and
:password and a submit button.
Perhaps. But I would still like to know how to get this to work through
the console. I have found a few leads on the web, such as : http://snippets.dzone.com/posts/show/600. But, I am afraid that this
example does not make a lot of sense to me and appears at first blush to
be a bit overwrought.
I think that my main problem at this point is my lack of familiarity
with some basic Ruby syntax pertaining to hashes or how to construct an
http request with form data.
If I do this:
$ script/console
app.new_user_session_path
=> "/user_session/new
That seems correct. Next I need to fill in the form params which are
nested in a hash called user_session. This is where I believe that I am
going off the rails (pardon the pun). The user_session hash is accessed
in the create method of the user_sessions_controller thus:
Which also seem ok to me, given I believe that it is @params that I use
to pass the form data back. If I misapprehend that, admittedly a strong
possibility, then the failure that follows is expected.
Then I do this:
app.post app.user_session_path
==> 200
But, the response code only refers to the re-rendered input page which
has these errors:
app.response
=> …
2 errors prohibited this user session from being saved
There were problems with the following fields:
Username can not be blank
Password can not be blank
...
Evidently I am not getting the form data to the controller. So, if some
kind soul would care to demonstrate to me how this is accomplished
within the console then I will be most grateful.
Evidently I am not getting the form data to the controller. So, if some
kind soul would care to demonstrate to me how this is accomplished
within the console then I will be most grateful.
Perhaps. But I would still like to know how to get this to work
through
the console. I have found a few leads on the web, such as : http://snippets.dzone.com/posts/show/600. But, I am afraid that this
example does not make a lot of sense to me and appears at first
blush to
be a bit overwrought.
I think you’d be better off creating a second way to log in where you
can simply pass normal parameters from the console.