2010-11-15 41 views
0

我想在我的Rails 3(v3.0.1)应用程序中设置一个sinatra应用程序,但没有成功。 Sinatra gem(v1.1.0)使用软件包安装进行设置。Rails 3&Sinatra集成问题

这是我的。

customer_app.rb类lib目录 -

class CustomerApp < Sinatra::Base 

    get "/test" do 
    "Hello World" 
    end 

end 

的routes.rb文件包含 -

CustomerService::Application.routes.draw do 

    root :to => CustomerApp 

end 

我努力的网址 - http://localhost:3000/test

我得到这个错误(在浏览器上) - 路由错误。无路由匹配“/测试”

这个错误日志中 - 的ActionController :: RoutingError(无路由匹配“/测试”):

有什么我失踪?

而且我刚刚注意到,即使是简单的机架路线是行不通的 -

root :to => proc { |env| [200, {}, ["Welcome!"]]} 
+0

仅当服务器重新启动时,lib目录才会重新加载。因此,如果您在保存对customer_app.rb文件的更改之前启动了服务器,则它将无法连接。虽然,这只是一个暗示。你能否提供更多的细节? – 0100110010101 2010-11-15 11:01:49

+0

我能够解决这个问题,但有一个新的问题。你会知道如何解决这个问题 - http://stackoverflow.com/questions/4191698/sinatra-rails-3-routes-issue – kapso 2010-11-16 06:30:37

回答

0

root关键字默认地图只有路径/

所以你试图说,转发/的任何请求到CustomerApp,它可以处理/test的请求。

您应该更改匹配过滤器。

CustomerService::Application.routes.draw do 
    match "/test" :to => CustomerApp 
end 
+0

谢谢,这工作。你知道如果nameD参数与Rails/Sinatra安装程序一起工作,我没有运气让他们工作? – kapso 2010-11-16 00:08:34

+0

你知道如何解决这个问题 - http://stackoverflow.com/questions/4191698/sinatra-rails-3-routes-issue .thanks – kapso 2010-11-16 06:29:44