# How to add dynamic routes to routes.rb. Worked in rails2 doesn't work in rails3

**URL:** <https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791>\
**Category:** Rails\
**Created:** [June 7, 2010, 9:53pm UTC](https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791 "2010-06-07T21:53:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![db-S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@db-S](https://www.ruby-forum.com/u/db-S)\
**Post date:** [June 7, 2010, 9:53pm UTC](https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791/1 "2010-06-07T21:53:02Z")

</div>

I’ve the following solution for this in rails2

In config/routes.rb

Page.all.each do |page|  
map.connect page.url, :controller =\> p.controller, :action =\>  
p.action

# get page.url + ’ =\> ’ + p.controller+’#’+p.action

end

This worked in rails2 but in rails3 this doesn’t work anymore. I do  
get “rake routes” display my route but app.get(’/test/page’) doesn’t  
work. I guess it has something to do with the parsing of my Page  
class, as not only map.method is relevant, but also any word inside  
that block.

Could somebody help?

best,

dennis

---

<div class="post-metadata">

**Author:** ![db-S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@db-S](https://www.ruby-forum.com/u/db-S)\
**Post date:** [June 8, 2010, 10:31am UTC](https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791/2 "2010-06-08T10:31:07Z")

</div>

Do you have a typo and ‘p.’ needs to be replaced with ‘page.’?

---

<div class="post-metadata">

**Author:** ![db-S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@db-S](https://www.ruby-forum.com/u/db-S)\
**Post date:** [June 8, 2010, 11:38am UTC](https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791/3 "2010-06-08T11:38:27Z")

</div>

I works now, but I had to add the following to my config/route.rb

* * *

## require ‘arel’ require ‘active\_model’ require ‘active\_model/observing’

Otherwise my route got added but no route at all will work.

app.get(‘/page/about’) AND app.get(‘/’) resulted in unintialized  
constants error.

best,

dennis

Am 08.06.2010 um 10:29 schrieb pepe:

> > # get page.url + ’ =\> ’ + p.controller+‘#’+p.action
> > 
> > best,
> > 
> > dennis
> 
> –  
> You received this message because you are subscribed to the Google G. “Ruby on Rails: Talk” group.  
> To post to this group, send email to removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to removed\_email\_address@domain.invalid.  
> For more options, visit this group at [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

Dennis Berger  
Informatik  
email: removed\_email\_address@domain.invalid  
mobile: +491791231509  
fon: +494054001817

---

<div class="post-metadata">

**Author:** ![db-S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c5a1d2/32.png) [@db-S](https://www.ruby-forum.com/u/db-S)\
**Post date:** [June 8, 2010, 11:47am UTC](https://www.ruby-forum.com/t/how-to-add-dynamic-routes-to-routes-rb-worked-in-rails2-doesnt-work-in-rails3/189791/4 "2010-06-08T11:47:49Z")

</div>

unfortunately the tests didn’t find the routes:

1. Error:  
test\_should\_get\_about(PageControllerTest):  
ActionController::RoutingError: No route matches {:action=\>“about”,  
:controller=\>“page”}  
/test/functional/page\_controller\_test.rb:5:in  
`test\_should\_get\_about’

$ rake routes RAILS\_ENV=test  
(in xxx)  
page\_index /page/index {:controller=\>“page”, :action=\>“index”}  
page\_about /page/about {:controller=\>“page”, :action=\>“about”}

:-/

best,  
dennis

Am 08.06.2010 um 11:36 schrieb dennis berger:

> app.get(‘/page/about’) AND app.get(‘/’) resulted in unintialized constants error.
> 
> > Do you have a typo and ‘p.’ needs to be replaced with ‘page.’?
> > 
> > > end
> 
> Informatik  
> email: removed\_email\_address@domain.invalid  
> mobile: +491791231509  
> fon: +494054001817
> 
> –  
> You received this message because you are subscribed to the Google G. “Ruby on Rails: Talk” group.  
> To post to this group, send email to removed\_email\_address@domain.invalid.  
> To unsubscribe from this group, send email to removed\_email\_address@domain.invalid.  
> For more options, visit this group at [http://groups.google.com/group/rubyonrails-talk?hl=en](http://groups.google.com/group/rubyonrails-talk?hl=en).

Dennis Berger  
Informatik  
email: removed\_email\_address@domain.invalid  
mobile: +491791231509  
fon: +494054001817
