неопределенный метод 'flash' для ActionDispatch:: Request
Я пытаюсь написать приложение Ember в Rails 4 и решил пойти с rails-api
для контроллеров api, сохраняя при этом контроллер приложения нетронутым для нескольких страниц, которые не являются частью одностраничного приложения. Говоря более конкретно, вот мои контроллеры:
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
Мой application.html.slim
содержит следующую строку:
== render partial: "flash_msgs" unless flash.blank?
Включение которого приводит в следующей ошибке:
Неопределенный метод 'flash' для #
Согласно обсуждению в этой теме, кажется, что виновником может быть rails-api
, но я не совсем уверен, учитывая наследование, которое я установил. Есть предложения?
3 ответа:
Не уверен, но, возможно, вам нужно включить промежуточное по
ActionDispatch::Flash
Для поддержки flash. Использование:config.middleware.use ActionDispatch::Flash
The docs говорит:
ActionDispatch:: Flash: поддерживает механизм вспышки в ActionController.
Надеюсь, это поможет
См.: https://github.com/plataformatec/devise/issues/2775
Внутри изобрести.изменение rb
config.navigational_formats = ['*/*', :html]
Кому:
config.navigational_formats = [:json]
Или просто [ ]