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?
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
See: https://github.com/plataformatec/devise/issues/2775
Inside devise.rb change
config.navigational_formats = ['*/*', :html]
to:
config.navigational_formats = [:json]
or just [ ]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With