Sinatra& Rails 3路线问题

时间:2010-11-16 06:27:52

标签: ruby-on-rails sinatra

我刚刚在我的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 

我猜我在路线文件中需要一些魔法?可能是什么问题?

2 个答案:

答案 0 :(得分:3)

在路线文件中,您可以通过以下方式指定映射:

mount CustomerApp, :at => '/customer'

现在,在sinatra应用程序中,您可以指定不带/customer部分的路线。 别忘了在某处需要你的sinatra应用程序(你可以直接在路径文件中)

答案 1 :(得分:1)

您需要添加其他路线以匹配不同的网址:

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