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ぼすけて><