Ruby on rails 如何调整此路线,以便可以通过其他参数?

Ruby on rails 如何调整此路线,以便可以通过其他参数?,ruby-on-rails,ruby-on-rails-3,routes,Ruby On Rails,Ruby On Rails 3,Routes,我不明白嵌套路由的必要性。关于Rails路线,我确实了解很多事情 以下是我在Rails 3.2应用程序中的简单设置: Categories habtm Products 在routes.rb中: resources :categories do member do get 'list_products_in' post 'add_to' post 'remove_from' end end resources :products 我基本上创建了一个页面,从中

我不明白嵌套路由的必要性。关于Rails路线,我确实了解很多事情

以下是我在Rails 3.2应用程序中的简单设置:

Categories habtm Products
在routes.rb中:

resources :categories do
  member do
    get 'list_products_in'
    post 'add_to'
    post 'remove_from'
  end
end

resources :products
我基本上创建了一个页面,从中可以将产品添加到一个类别中。顶部有一个包含产品的选择框,底部是列表。要将产品添加到列表中,请从选择框中选择一个产品,然后单击添加按钮。通过Ajax调用add_to。效果很好

我的问题是,为了让这个应用程序优雅地降级,我希望它在没有Ajax的情况下也能正常工作。但我的路线没有一条能正常工作

我从上面了解到,我的自定义路线不希望除了类别id之外还传递产品id。我的问题是,如何向自定义路线添加更多参数?

您可以在路线中使用:变量段来提供其他变量段

例如,您可以将产品id段添加到您的添加到路线和从路线中删除路线:


我试过了,但是rake routes给了我:missing:action我想这是为我做的:match'add_to/:product_id'=>'categoriesadd_to',:as=>'add_to',:via=>:post
...
post 'add_to/:product_id'
post 'remove_from/:product_id'