Rails 1.X to 2.1 routing problem


#1

Hi,
I’m trying to bring an “old” rails app up to 2.1.

I’m getting this error when trying to access the app via an iFrame setup
we had working before for showing widgets on other domains pages:
ActionController::RoutingError (No route matches “/topics;summary” with
{:method=>:get}):
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/routing/recognition_optimisation.rb:67:in
recognize_path' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/routing/route_set.rb:385:inrecognize’
/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/dispatcher.rb:148:in
`handle_request’
yadda yadda…

My routes.rb has this:
map.resources :topics,
{ :member => { :rank_item => :put,
:rank_items => :put,
:widgets => :get },
:collection => { :summary => :get },
:new => { :copy => :post,
:link => :post } }

and my topics controller has a “summary” method.

Any ideas what has changed that makes this no longer valid? The other
developer on the job set this part up, and I never quite understood it.
Seems to be a pre-cursor to the “modern” REST way of doing things, but
seems only to complicate something that would otherwise be simple.

Anyway, enough bitching from me. Anyone know what’s wrong here?

many thanks,
jp


#2

Jeff P. wrote:

Hi,
I’m trying to bring an “old” rails app up to 2.1.

many thanks,
jp

Shameless bump. Apparently everyone was out partying last night and
didn’t see my plea for assistance…

thanks,
jp


#3

jp,

On Tue, Dec 30, 2008 at 8:58 PM, Jeff P.
removed_email_address@domain.invalid wrote:

/usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/routing/route_set.rb:385:in
:widgets => :get },
seems only to complicate something that would otherwise be simple.

Anyway, enough bitching from me. Anyone know what’s wrong here?

Rails 1.x used a semi-colon instead of just a slash to specify the
action, so instead of “/topics;summary”, the route will generate
“topics/summary”. I’m guessing whatever is calling the iframe has the
url with the semi-colon hard-coded.

Brandon

Training by Collective Idea: Ruby on Rails training in a vacation
setting
http://training.collectiveidea.com – San Antonio, TX – Jan 20-23


#4

Brandon K. wrote:

Rails 1.x used a semi-colon instead of just a slash to specify the
action, so instead of “/topics;summary”, the route will generate
“topics/summary”. I’m guessing whatever is calling the iframe has the
url with the semi-colon hard-coded.

Brandon

Training by Collective Idea: Ruby on Rails training in a vacation
setting
http://training.collectiveidea.com � San Antonio, TX � Jan 20-23

GENIUS!

Thanks Brandon, that was the whole problem. Everything is working great
now!

cheers,
jp