首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sinatra on Rails '/‘映射

Sinatra on Rails '/‘映射
EN

Stack Overflow用户
提问于 2012-07-07 10:13:26
回答 2查看 404关注 0票数 1

我可能遗漏了一些东西,但是我如何在Rails中映射"/“来执行Sinatra应用程序呢?我有:

代码语言:javascript
复制
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

因此,如果我像这样进行路由:

代码语言:javascript
复制
match '/test' => Core
match '/'=>Core

只有'/test‘触发Sinatra应用程序'/’运行Rails。实际上,我希望每条路线都由Sinatra应用程序处理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-07 19:20:09

您只需要从public文件夹中删除index.html

您可以使用mount Core, :at => '/'挂载整个应用程序,以便让Sinatra完成所有路由。

票数 3
EN

Stack Overflow用户

发布于 2012-07-07 12:00:03

如果Sinatra创建了一个DSL来定义路由(不能作为方法直接访问),那么您可能需要添加一个helper方法,以便可以专门调用路由:

代码语言:javascript
复制
  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中:

代码语言:javascript
复制
match :root => 'Core#launch_sinatra_app'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11371753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档