如何将默认json添加到Rails标准资源路由?

时间:2019-04-26 10:04:05

标签: ruby-on-rails

这是我的路线

resources :content_elements, only: [:destroy, :edit, :update], controller: 'contents/content_elements' do
   put :reposition, :on => :member, :defaults => { format: 'json' }
   get :list_images, on: :member
   post :send_image, :on => :member
end

我只想为销毁添加json作为默认路由。

我尝试

  :destroy, :on => :member, :defaults => { format: 'json' }

但这不起作用

1 个答案:

答案 0 :(得分:0)

请参阅文档:https://guides.rubyonrails.org/v5.2/routing.html

resources :content_elements, only: [] do 
   delete :destroy, on: :member, constraints: { format: :json }
end 
  

格式约束有一个例外:虽然是方法   在Request对象上,它也是一个隐式可选参数   每条路。段约束具有优先权和格式   约束仅在通过哈希实施时才应用。

例如

  

get'foo',约束:{format:'json'}将匹配GET / foo   因为默认情况下格式是可选的。但是,您可以使用   lambda像在get'foo'中一样,约束:lambda {| req | req.format ==   :json},并且路由将仅匹配显式的JSON请求。