2010-11-15 54 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