Hatena::ブログ(Diary)

自分の仕事を憎むには人生は余りにも短い RSSフィード

2008-11-07

map.resourcesではまる

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

ぼすけて><

Railsのログ出力とログ監視

今日はログ出力周りとそのログ監視辺りを調べていました。

分かった事

ログの切れ目で空行が入るのもなんとかしたいな、、

あともう少しエラーログを分かりやすく(監視しやすく)したいのでfatalメソッドを改修せねば

ログローテーとの設定方法

ログローテーとの設定方法(複数インスタンスでログ共有の場合)

ログにタイムスタンプを追加する方法

Railsアプリケーションのログをsyslogに記録する方法 - Hello, world! - s21g