How to set default format for routing in Rails?

左心房为你撑大大i 提交于 2019-12-01 05:38:23

Try something like this:

scope format: true, defaults: { format: 'json' } do
  resources :orders, only: [:create]
  resources :users,  only: [:create, :update] 
  resources :delivery_types, only: [:index]
  resources :time_corrections, only: [:index]
end

I'd rather add method to application_controller. And use it as before filter where I want.

class ApplicationController < ActionController::Base
...
private 
...
  def set_default_format
    params[:format] ||= "json"
  end
end

class UsersController < ApplicationController
  before_filter :set_default_format, only: [:create]
  ...
end

In this case default format wouldn't a surprise for new developers, because usually routes.rb is big and cumbersome

That worked for me:

  scope defaults: { format: 'json' } do
    resources :users, only: [:index]
  end
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!