我刚刚在我的rails(v3.0.1)app中设置了Sinatra v1.1.0。但我不能调用超过1级深度的任何路线,这意味着这有效 - http://localhost/customer/3,
但是这个不起作用 - http://localhost/customer/3/edit我收到了“路由错误”
这是Sinatra对象
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
这是我在rails routes.rb文件中的内容 -
match '/customer/(:string)' => CustomerApp
我猜我在路线文件中需要一些魔法?可能是什么问题?
答案 0 :(得分:3)
在路线文件中,您可以通过以下方式指定映射:
mount CustomerApp, :at => '/customer'
现在,在sinatra应用程序中,您可以指定不带/customer
部分的路线。
别忘了在某处需要你的sinatra应用程序(你可以直接在路径文件中)
答案 1 :(得分:1)
您需要添加其他路线以匹配不同的网址:
match '/customer/(:string)/edit' => CustomerApp