ruby-on-rails - 在 Rails 应用程序中安装 Sinatra 应用程序及其所有路由

标签 ruby-on-rails routes sinatra

我有以下 Sinatra 应用程序:

class MyFakeAPI < Sinatra::Base
  get "/" do
    "Hello World"
  end

  get "widgets" do
    # code that renders widgets.json
  end
end

在运行集成测试时,我尝试为这个 Sinatra 应用程序提供对/api 的请求,以代替很少使用的第三方 API。

通过网络模拟的 to_rack 方法调用时,假 API 效果很好。

但是当我像这样安装时:

if Rails.env.test?
  mount MyFakeAPI.new => "/api"
end

访问/api 会渲染 hello world,但访问/api/widgets 会生成 Rails 路由错误。

如何将/api 下的所有流量路由到 Sinatra 应用程序?

最佳答案

所以问题最终是我错过了获取路由中小部件之前的前导 /,因此它没有被正确路由。

关于ruby-on-rails - 在 Rails 应用程序中安装 Sinatra 应用程序及其所有路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316089/

相关文章:

ruby-on-rails - 实现用户角色及其独特的列

ruby-on-rails - Rails 3 UJS 干客户端 + 服务器端表单验证

javascript - Node.js 中的路由模块出现 `Cannot GET/en/first` 错误

python - Skimage图路由到多个目的地

c# - 使用 Route 属性在 Controller 方法中获取 Controller 和操作名称

ruby-on-rails - 单击链接向其他网站发送获取请求?

ruby - 从实例方法中获取 sinatra 环境

Ruby、Sinatra、omniauth-github 身份验证失败回调错误

ruby - Sinatra Url '/' 解释

ruby-on-rails - 如何在 webpacker 中使用 handlebars