maeshimaの日記

メモ書きです

今週のrailscasts - Rack in Rails 3

Railscasts - Rack in Rails 3を見て。

Rails 3の routes.rb の

root :to => "home#index"

root :to => HomeController.action(:index)

と同じで、要するに全rackアプリにルーティングできる。なので rails3でルーティングして sinatra を動かす的なことも可能。

もちろんrailsを使わないrackアプリの方がレスポンスが早い。でも機能が全然ない。低レベルな機能を追加するにはActionController::Metalを継承させたり、必要なモジュールをincludeするといいみたい。

class ProcessesApp < ActionController::Metal
  include ActionController::Rendering

  append_view_path "#{Rails.root}/app/views"

  def index
    @processes = `ps -axcr -o "pid,pcpu,pmem,time,comm"`
    render
  end
end

Metalについてはいずれしっかり勉強したい。