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

时间:2015-05-19 03:11:30

标签: ruby-on-rails routing sinatra

我有以下Sinatra应用程序:

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

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

我正在尝试运行集成测试时,为这个Sinatra应用程序提供服务,以便/ api能够代表一个使用频率较低的第三方API。

伪造的api在通过web mock的to_rack方法调用时效果很好。

然而,当我这样装载时:

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

访问/ api呈现hello world,但访问/ api / widgets会生成rails路由错误。

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

1 个答案:

答案 0 :(得分:3)

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