On Jan 27, 2008, at 8:05 PM, David Chelimsky wrote:

On Nov 21, 2007 3:10 PM, Chris Olsen <[EMAIL PROTECTED]> wrote:
I can't figure out how to make the updates to allow for the route_form
method to return a url that matches the expected.

Here is a sample
route_for(:controller => :task, :action => :new).should == "/task/ new"

If a task has to be created for a user, how exactly do I do this. The
following doesn't work:
route_for(:controller => :task, :action => :new, :user_id => 1).should
== "/users/1/task/new" (fails)
route_for(:controller => :task, :action => :new, :user_id => 1).should
== "/task/new?user_id=1" (passes)

Or do you just use:
new_user_task(1,1).should == "/users/1/task/new"

I haven't been able to find that much documentation on the route_for
method that lists any ways of creating the nested route url.

It uses ActionController::Routing::Routes.generate, which is equally
un-documented :(

You've got a singular task controller (instead of tasks), so I'm not
sure how that's affecting things. I can tell you that if you do this:

route_for(:controller => 'tasks', :action => 'new', :user_id =>
'2').should == '/users/2/tasks/new'

It will pass when your routes.rb has this:

map.resources :users do |users|
 users.resources :tasks
end

Give that a whirl.

Cheers,
David


Thanks for the further explanation David! I could've sworn that I tried this, but sure enough, it works like a charm.

Thanks!

Matt Darby, M.S.
IT Manager / Lead Web Developer

Dynamix Engineering Ltd.
1108 City Park Ave.
Columbus, OH 43206
Cell: (614) 403-5289
www.dynamix-ltd.com

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to