undefined method `flash' for ActionDispatch::Request

余生颓废 提交于 2019-11-27 05:42:59

问题


I'm trying to write an Ember application in Rails 4, and have decided to go with rails-api for the api controllers, while keeping the application controller intact for a few pages that aren't part of the single-page app. To put it in more concrete terms, here are my controllers:

app/controllers/application_controller.rb:

class ApplicationController < ActionController::Base
  protect_from_forgery
end

app/controllers/sample_controller.rb:

class SampleController < ApplicationController
  # my methods
end

app/controllers/api/v1/api_controller.rb:

class Api::V1::ApiController < ActionController::Api
  include ActionController::MimeResponds
end

app/controllers/api/v1/sample_controller.rb:

module Api::V1
  class SampleController < ApiController
    respond_to :json

    # my methods

  end
end

My application.html.slim contains the following line:

== render partial: "flash_msgs" unless flash.blank?

The inclusion of which results in the following error:

undefined method 'flash' for #< ActionDispatch::Request:0x007f99f41d8720 >

Per discussion on this thread, it seems that the culprit could be rails-api, but I'm not entirely convinced given the inheritance I've set up. Any suggestions?


回答1:


Not sure but maybe you need to include the ActionDispatch::Flash middleware to support the flash. Using:

config.middleware.use ActionDispatch::Flash

The docs says:

ActionDispatch::Flash: Supports the flash mechanism in ActionController.

I hope it helps




回答2:


See: https://github.com/plataformatec/devise/issues/2775

Inside devise.rb change

config.navigational_formats = ['*/*', :html]

to:

config.navigational_formats = [:json]

or just [ ]




回答3:


If you're like me and creating an API on top of an existing application, you can add this to your config/application.rb file:

config.api_only = false



来源:https://stackoverflow.com/questions/19600905/undefined-method-flash-for-actiondispatchrequest

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!