id:onk さんのブログを読んで Rails の Mount Engine を試してみた。
Rails プロジェクトの初期化
まずプロジェクトを作成して welcome コントローラーを追加し、ルートパスで “Welcome!” を表示させる。

基本的な Mount
config/routes.rb に簡単な Proc をマウントする。
mount proc { [200, {}, ["Hello from mounted engine!"]] }, at: "/hello_mount_engine"
/hello_mount_engine というpathでちゃんと表示された。

Sinatra アプリの統合
独立した Sinatra アプリケーションを作成する。
require 'sinatra/base'
class HelloFromSinatra < Sinatra::Base
get '/' do
'Hello from Sinatra!'
end
get '/hello' do
'Hello!'
end
end
‘/‘と’/hello’はそれぞれ次のように表示される。


ではいよいよSinatraアプリをRailsアプリにマウントしてみる。
config/application.rb に require を追加:
require './hello_from_sinatra'
config/routes.rb でマウント:
mount HelloFromSinatra, at: "hello_sinatra"
rake routes で確認するとマウントされたアプリケーションがルーティングテーブルに表示される。


まとめ
Mount Engine 便利っぽい。別のアプリケーションを統合するのに便利な機能だった。