我可能遗漏了一些东西,但是我如何在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应用程序处理。
发布于 2012-07-07 19:20:09
您只需要从public文件夹中删除index.html。
您可以使用mount Core, :at => '/'挂载整个应用程序,以便让Sinatra完成所有路由。
发布于 2012-07-07 12:00:03
如果Sinatra创建了一个DSL来定义路由(不能作为方法直接访问),那么您可能需要添加一个helper方法,以便可以专门调用路由:
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'https://stackoverflow.com/questions/11371753
复制相似问题