29

Rails 4 で Ember アプリケーションを作成しようとして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

Myapplication.html.slimには次の行が含まれています。

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

これを含めると、次のエラーが発生します。

#< ActionDispatch::Request:0x007f99f41d8720 > の未定義のメソッド「フラッシュ」

このスレッドに関する議論によると、犯人は である可能性があるようrails-apiですが、私が設定した継承を考えると、完全には確信が持てません。助言がありますか?

4

4 に答える 4

44

ActionDispatch::Flash確かではありませんが、フラッシュをサポートするためにミドルウェアを含める必要があるかもしれません。使用:

config.middleware.use ActionDispatch::Flash

ドキュメントには次のように記載されています。

ActionDispatch::Flash: ActionController でフラッシュ メカニズムをサポートします。

役立つことを願っています

于 2013-10-26T00:04:46.933 に答える
34

参照: https://github.com/plataformatec/devise/issues/2775

内部のdevise.rbの変更

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

に:

config.navigational_formats = [:json]

あるいは単に [ ]

于 2014-01-15T22:32:42.577 に答える