1

何かが足りないかもしれませんが、Railsで「/」をマップしてSinatraアプリケーションを実行するにはどうすればよいですか?私は持っています:

class Core < Sinatra::Base

 get '/' do
  "This is root but it is caput."
 end

 get '/test' do
  "This is test and it works"
 end

end

したがって、そのようなルーティングを行う場合:

match '/test' => Core
match '/'=>Core

'/test'のみがSinatraアプリを起動します'/'はRailsを実行します。実際、私はすべてのルートをSinatraアプリで処理したいと思っています。

4

2 に答える 2

3

index.htmlフォルダから削除する必要がありpublicます。

mount Core, :at => '/'Sinatraにすべてのルーティングを行わせるために、でアプリ全体をマウントできます。

于 2012-07-07T11:20:08.650 に答える
0

Sinatraがルート(メソッドとして直接アクセスできない)を定義するためのDSLを作成することを考えると、ルートを具体的に呼び出すことができるように、ヘルパーメソッドを追加する必要があります。

  def launch_sinatra_app
    status, headers, body = call env.merge("PATH_INFO" => '/')
    [status, headers, body.map(&:upcase)] # proper rack response
  end

次に、railsのconfig/routes.rbにあります。

match :root => 'Core#launch_sinatra_app'
于 2012-07-07T04:00:02.560 に答える