2012-02-22 85 views
0

我有一個導軌應用程序,它反過來在其中使用sinatra應用程序。我加入這行路線將sinatra應用程序安裝在導軌中時出錯

mount TestApp::Application => "/test_app" 

現在在訪問/test_app航線它給

TypeError (no marshal_dump is defined for class Mutex) 

如果反對的Ruby 1.9.2 RAN和導軌3.2.1。 Sinatra應用程序使用mongo寶石。

現在,當我運行紅寶石反對和1.8.7 3.2.1鋼軌這個應用程序,它提供了以下錯誤

TypeError (can't dump TCPSocket) 

任何幫助,高度讚賞。

+0

你自己寫了兩個應用程序嗎?他們在做什麼? – 2012-02-22 07:02:54

+0

是的,我做到了。這兩款應用都是正常應用。我們正在重複使用已經存在的sinatra應用程序。它獨立運行良好。 – ducktyped 2012-02-22 07:05:34

+0

它可能是機架會話的問題。我在sinatra應用程序中使用了機架會話'使用Rack :: Session :: Pool,:expire_after => 2592000' – ducktyped 2012-02-22 07:14:16

回答

-1

假設你需要你的TestApp ::應用正確的,我覺得你的路由定義應該是:

match "/test_app", :to => TestApp::Application 

更多信息,請參見Rails Routing from the Outside in

+0

對不起!但是這不會服務於sinatra目錄的靜態內容。而FYI'掛載TestApp :: Application =>「/ test_app」'是解決靜態內容問題的唯一方法。 – ducktyped 2012-02-22 16:28:15

+0

似乎有點苛刻......你沒有提到你的問題中的靜態內容。上述建議如何不正確?我的印象是Mount的路由使用了匹配嗎? [http://living5to9.com/2011/11/rails-routes-match-and-mount](http://living5to9.com/2011/11/rails-routes-match-and-mount/) – 2012-02-23 10:53:25