10

如何在设计处理 HTML 和 XML 请求时禁用并仅保留 JSON?

4

3 回答 3

8

我想你可以覆盖设计控制器:

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"
}
于 2013-05-02T13:51:29.247 回答
2

您必须clear_respond_to(清除之前定义的所有类型,如 HTML 或 XML),然后respond_to :json在覆盖控制器中...

配置/路由.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!

于 2019-01-26T20:20:59.220 回答
1
module DeviseOverrides
  class SessionsController < Devise::SessionsController
    # Respond only to JSON calls
    clear_respond_to
    respond_to :json
  end
end
于 2016-01-26T12:27:00.247 回答