【发布时间】:2013-03-04 15:02:58
【问题描述】:
如何在设计处理 HTML 和 XML 请求时禁用并只保留 JSON?
【问题讨论】:
标签: ruby-on-rails json devise
如何在设计处理 HTML 和 XML 请求时禁用并只保留 JSON?
【问题讨论】:
标签: ruby-on-rails json devise
我想你可以覆盖设计控制器:
在controllers/devise_overrides/sessions_controller.rb:
class DeviseOverrides::SessionsController < Devise::SessionsController
respond_to :json
respond_to :html, only: []
respond_to :xml, only: []
end
在routes.rb:
devise_for :users, controllers: {
sessions: "devise_overrides/sessions"
}
【讨论】:
您必须 clear_respond_to(用于清除之前定义的所有类型,如 HTML 或 XML),然后在覆盖控制器中 respond_to :json...
config/routes.rb
devise_for :users , controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations'
}
控制器/用户/会话
class Users::SessionsController < Devise::SessionsController
clear_respond_to
respond_to :json
end
控制者/用户/注册者
class Users::/RegistrationsController < Devise::RegistrationsController
clear_respond_to
respond_to :json
end
它适用于我的 Rails 5.2!
【讨论】:
module DeviseOverrides
class SessionsController < Devise::SessionsController
# Respond only to JSON calls
clear_respond_to
respond_to :json
end
end
【讨论】: