自定义嵌套资源的路由

时间:2016-12-24 20:37:16

标签: ruby-on-rails

我目前拥有以下资源:

的routes.rb

Rails.application.routes.draw do

  resources :store do
    resources :candy
  end
end

如您所知,这会为6个HTTP操作生成路由,包括嵌套的store/store_id/candy/...路由。这对我很好,但我只想使用GET和POST而不是PATH / PUT和DELETE

POST store/destroy/:idPOST store/update/:id对我来说是理想的行为。

首先,这是违反惯例,如果没有,是否有一种简单的方法来生成这样的路线?

1 个答案:

答案 0 :(得分:1)

您是否有特殊原因想要使用PATH / PUT和DELETE方法?如果不使用这些方法,您将违反Rail的RESTful路由约定,但可以创建您正在寻找的路由:

resource :store, except: [:new, :create, :edit, :update, :destroy, :show] do
  resources :candy
end
post '/store/destroy/:id', to: 'store#destroy', as: :destory_store
post '/store/update/:id', to: 'store#update', as: :update_store

这种方式应该为您提供您想要的嵌套糖果路线,然后以下两条路线将为您提供您正在寻找的帖子请求。