Routes ordering

1 view
Skip to first unread message

Abder-Rahman Ali

unread,
Aug 20, 2010, 8:23:12 AM8/20/10
to rubyonra...@googlegroups.com
In the "Head First Rails" book, it mentions this ordering in routes.rb:

ActionController: : Routing: : Routes. draw do | map|
map. connect ' /ads/new' , : controller=>' ads' , : action=>' new'
map. connect ' /ads/create' , : controller=>' ads' , : action=>'
create'
map. connect ' /ads/' , : controller=>' ads' , : action=>' index'
map. connect ' /ads/: id' , : controller=>' ads' , : action=>' show'

If we enter:

map. connect ' /ads/: id' , : controller=>' ads' , : action=>' show'

At the top of the ordering, how will that affect our routing.

Can you just describe how to order routes in routes.rb? I mean, what is
the rule to follow when ordering routes?

Thanks.
--
Posted via http://www.ruby-forum.com/.

Colin Law

unread,
Aug 20, 2010, 8:47:54 AM8/20/10
to rubyonra...@googlegroups.com

The first entry in the file that matches is used, later ones are
disregarded, so if you put the /ads/:id one at the start (note there
is no space after the colon), then if a url matches that route then
later ones will not be tested. You can always try it and see for
yourself what happens. Have a look at the Rails Guide on routing for
more information.

Colin

Parker Selbert

unread,
Aug 20, 2010, 9:09:12 AM8/20/10
to rubyonra...@googlegroups.com

I'm not sure how old "Head First Rails" is, though I'm thinking 2008. If
you're getting started take a look at Ruby on Rails Guides (as Colin
mentioned), which has an excellent page for this topic:

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

Using RESTful routes simplifies that that example is trying to achieve
by a lot, and using them I rarely run into the precedence issue:

map.resources :ads, :only => [:index, :new, :create, :show]

Marnen Laibow-Koser

unread,
Aug 20, 2010, 10:34:55 AM8/20/10
to rubyonra...@googlegroups.com

The first matched route rules. If you read any Rails routing reference,
you'll find that is says just this.

Once again, the bigger answer: spend less time posting and more time
reading. Virtually every question you've asked on this list could have
been answered by 30 seconds with Google and/or 5 minutes with
documentation.

>
> Thanks.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
mar...@marnen.org

Abder-Rahman Ali

unread,
Aug 20, 2010, 11:12:45 AM8/20/10
to rubyonra...@googlegroups.com
Thanks everyone. Yes, Parker, the "Head First Rails" is 2008.
Reply all
Reply to author
Forward
0 new messages