Devise中的UnknownFormat :: SessionsController #new

nif*_*fty 0 ruby-on-rails devise

我有一个Rails 4应用程序(从Rails 3升级),我决定删除其中一个控制器.然后我将方法从已删除的控制器移动到ApplicationController,其中包括before_filter :authenticate_user!

这是我的ApplicationController现在的样子:

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :authenticate_user!
  respond_to :json

  def index
    gon.rabl

    @user = current_user
    gon.rabl "app/views/users/show.json.rabl", as: "current_user"
  end

  def markdown
    require 'redcarpet'
    renderer = Redcarpet::Render::HTML.new
    extensions = {}
    Redcarpet::Markdown.new(renderer, extensions)
  end

  helper_method :markdown

end
Run Code Online (Sandbox Code Playgroud)

现在,我收到了这个错误:

ActionController::UnknownFormat in Devise::SessionsController#new

Sli*_*pan 5

我想这可能是因为您已将应用程序控制器设置为仅响应json.如果您的Devise Controller继承自ApplicationController(我认为这是默认设置),那么它将期望看到内容类型:json标头,或者您的网址必须全部以.json结尾