有以下路由代码:
resources :orders, only: [:create], defaults: { format: 'json' }
resources :users, only: [:create, :update], defaults: { format: 'json' }
resources :delivery_types, only: [:index], defaults: { format: 'json' }
resources :time_corrections, only: [:index], defaults: { format: 'json' }
可以使用1个字符串为所有资源设置默认格式,每行不带“defaults”哈希值?谢谢。
答案 0 :(得分:6)
尝试这样的事情:
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
答案 1 :(得分:2)
我宁愿为application_controller添加方法。并在我想要的过滤器之前使用它。
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
在这种情况下,默认格式对新开发人员来说并不意外,因为routes.rb
通常很大且很麻烦
答案 2 :(得分:0)
对我有用:
scope defaults: { format: 'json' } do
resources :users, only: [:index]
end