2010-11-16 73 views
0

我剛剛在我的rails(v3.0.1)應用程序中設置了Sinatra v1.1.0。但我不能調用是超過1級深的任何路由,這意味着該工程 - http://localhost/customer/3Sinatra&Rails 3 routes issue

但是這一次不工作 - http://localhost/customer/3/edit,我得到一個「路由錯誤」

這裏的西納特拉對象

class CustomerApp < Sinatra::Base 

    # this works 
    get "/customer/:id" do 
    "Hello Customer" 
    end 

    # this does NOT work 
    get "/customer/:id/edit" do 
    "Hello Customer" 
    end 

end 

這是我在軌routes.rb中文件 -

match '/customer/(:string)' => CustomerApp 

我猜我需要在航線網絡的一些魔術樂?可能是什麼問題呢?

+0

routes.rb文件中有大量的例子被註釋掉了。 – rwilliams 2010-11-16 07:25:22

回答

1

您需要添加額外的途徑來匹配不同的URL:

match '/customer/(:string)/edit' => CustomerApp 
+0

非常感謝,這意味着你需要重複的網址,這不是很好。 – kapso 2010-11-17 23:27:25

3

在你的路由文件,你可以指定映射是這樣的:

mount CustomerApp, :at => '/customer' 

現在,您的西納特拉的應用程序中,您可以在沒有/customer部分的情況下指定您的路線。 不要忘記要求你的sinatra應用程序在某處(你可以直接在路徑文件中執行)