[rails] Rails3からSinatraを呼ぶ

Rails3からはSinatraとか他のRackベースアプリケーションが呼べるというのは様々な記事に載っているのですが、実例が見つからないので実際にやってみました。

1. railsプロジェクトを作成する

$ rails new rinatra

2. sinatraアプリケーションを作成する

$ mkdir sinatra
$ emacs sinatra/app.rb

作成したsinatraアプリケーションは以下のとおり。っていうか単なるハローワールド

require 'rubygems'
require 'sinatra'

get '/hello' do
  "Hello Sinatra"
end

3. rails側でsinatraをbundleしておく

$ cd rinatra
$ vi Gemfile
source 'http://rubygems.org'

gem 'rails', '3.0.0'
gem 'sinatra' #<= これを書き足す

# Bundle edge Rails instead:                                                                        
# gem 'rails', :git => 'git://github.com/rails/rails.git'                                           

gem 'sqlite3-ruby', :require => 'sqlite3'
(以下略)
$ bundle install vendor/bundle

4. sinatraアプリケーションをrequireする

$ vi config/initializers/sinatra.rb
require "#{Rails.root}/../sinatra/app"

5. routesを設定してsinatraアプリケーションを呼べるようにする(ここ本命)

$ emacs config/routes.rb
Rinatra::Application.routes.draw do
  mount Sinatra::Application, :at => 'sinatra' #<= これを書き加える

(以下略)

とここまでやったった上で rails server を起動して
http://localhost:3000/sinatra/helloにアクセスすると

sinatra のハローワールドが表示されました。

ちなみに rake routes はこんな感じ

$ rake routes
(in /home/yalab/project/rinatra)
sinatra  /sinatra {:action=>"sinatra", :to=>Sinatra::Application}

ただ http://localhost:3000/sinatra にアクセスして sinatra の get '/' を呼ぶことはなぜかできませんでした。この辺り詳しい方いましたらコメントで教えていただけるとうれしいです。