Functional test question

I have a view that passes two params hashes (:user and :school) to my
controller action. In the functional test for the controller action,
how do pass these two hashes?

I tried the following that did not work
get(:create, [:user => {:firstname => ‘xxx’, :lastname =>
‘yyyy’}, :school => {:id => 1}] )

It seems to pick only the first array element.

Anybody run into this issue and knows how to do this?

-Navjeet

njs wrote:

I tried the following that did not work
get(:create, [:user => {:firstname => ‘xxx’, :lastname =>
‘yyyy’}, :school => {:id => 1}] )

You are thinking too hard. Rails typically requires less effort.

get :create, :user => {:firstname => ‘xxx’, :lastname => ‘yyyy’},
:school => {:id => 1}

Now get inside def create, and add

p params

Run the test, and you will see how your parameters pass thru.

Anybody run into this issue and knows how to do this?

Have you read /Agile Web D. with Rails/? It covers all this
stuff.


Phlip
"Pigleg too?", week 1

Hi –

On 4/7/07, njs [email protected] wrote:

Anybody run into this issue and knows how to do this?

You don’t need to wrap your hashes in an array. In fact, you need not
to :slight_smile:

get(:create,
:user => {:firstname => ‘xxx’, :lastname => ‘yyyy’},
:school => {:id => 1})

:user and :school are themselves hash keys, and the hash to which they
belong is implicit in your argument list, based on the Ruby rule that
if the last thing in an argument list is a literal hash, you can leave
off the curly braces.

David


Upcoming Rails training by Ruby Power and Light:
Four-day Intro to Intermediate
May 8-11, 2007
Edison, NJ
http://www.rubypal.com/events/05082007