我已经生成了一个支架模型car
。
因此,如果我想创建新车,则URL如下所示:/cars/new
。我需要将另一个信息传递给URL,最简单的方法是将其作为参数添加到最后,因此URL看起来像/cars/new?listing=123
。
我想要做的是在网址中获取类似内容:/l/123/cars/new
(l =列表)。其他行为也是如此(例如/l/123/cars/4/edit
。
如何修改此类示例的路线? listing
是另一种模式,每个listing
都有一辆车。
谢谢
答案 0 :(得分:0)
AFAIK,您无法通过资源丰富的方式实现这一目标。您必须定义非资源路由才能实现您的目标。例如,cars#new
的路由将定义如下
get /:listing_id/:extra_param/cars/new, to: "cars#new"
答案 1 :(得分:0)
我认为您可以使用嵌套资源:
resources :listings do
resources :cars
end
它会生成listings/:listing_id/cars/:id
之类的路线。如果您没有listings
控制器,或者您不想为其生成路由,请使用resources :listings, only: [] do ...