今週の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についてはいずれしっかり勉強したい。