Rails2.1.1でroutes.rbの記載がうまくいかない、、
map.resources :garapon, :collection => {:rss => :get}
のような感じで書いてRESTフル+「/garapon/rss」とかいうURLを作りたいんだけど
/garapon/rssにアクセスすると
ActiveRecord::RecordNotFound in GaraponController#show Couldn't find Garapon with ID=rss
となってしまいrssメソッドにアクセスするんじゃなくてshowメソッドにアクセスしてrssが:idとして扱われてしまう。
routesの書き方間違ってるんかなとrake routesで見てみても以下のようにちゃんと出来ている。
>rake routes (in c:\gara) rss_garapon GET /garapon/rss {:controller=>"garapon", :action=>"rss"} formatted_rss_garapon GET /garapon/rss.:format {:controller=>"garapon", :action=>"rss"} garapon_index GET /garapon {:controller=>"garapon", :action=>"index"} formatted_garapon_index GET /garapon.:format {:controller=>"garapon", :action=>"index"} POST /garapon {:controller=>"garapon", :action=>"create"} POST /garapon.:format {:controller=>"garapon", :action=>"create"} new_garapon GET /garapon/new {:controller=>"garapon", :action=>"new"} formatted_new_garapon GET /garapon/new.:format {:controller=>"garapon", :action=>"new"} edit_garapon GET /garapon/:id/edit {:controller=>"garapon", :action=>"edit"} formatted_edit_garapon GET /garapon/:id/edit.:format {:controller=>"garapon", :action=>"edit"} garapon GET /garapon/:id {:controller=>"garapon", :action=>"show"} formatted_garapon GET /garapon/:id.:format {:controller=>"garapon", :action=>"show"} PUT /garapon/:id {:controller=>"garapon", :action=>"update"} PUT /garapon/:id.:format {:controller=>"garapon", :action=>"update"} DELETE /garapon/:id {:controller=>"garapon", :action=>"destroy"} DELETE /garapon/:id.:format {:controller=>"garapon", :action=>"destroy"}
ちなみに/garapon/new はちゃんとアクセスできる。
routesは以下の3行しか書いてないのに><たった3行ではまるとは><
ActionController::Routing::Routes.draw do |map| map.resources :garapon, :collection => {:rss => :get} map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' end
ぼすけて><