10

HTMLおよびXMLリクエストのDevise処理を無効にして、JSONのみを残すにはどうすればよいですか?

4

3 に答える 3

8

DeviseControllerをオーバーライドできると思います。

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コントローラーで...

config / routers.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 に答える