Подтвердить что ты не робот

Undefined метод `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

My application.html.slim содержит следующую строку:

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

Включение которых приводит к следующей ошибке:

undefined метод 'flash' для # < ActionDispatch:: Request: 0x007f99f41d8720 >

В обсуждении в этом потоке кажется, что виновником может быть rails-api, но я не полностью убежден в том, что я наследовал наследование. Любые предложения?

4b9b3361

Ответ 1

Не уверен, но, возможно, вам нужно включить промежуточное программное обеспечение ActionDispatch::Flash для поддержки Flash. Использование:

config.middleware.use ActionDispatch::Flash

docs говорит:

ActionDispatch:: Flash: поддерживает механизм вспышки в ActionController.

Я надеюсь, что это поможет

Ответ 2

Если вы похожи на меня и создаете API поверх существующего приложения, вы можете добавить его в свой файл config/application.rb:

config.api_only = false