我有以下 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/