2016-04-11 5 views
2

私はこのように構成されたフェニックスのルーターを持っている:phoenixのパスの終わりまでフォーマットを設定するにはどうしたらいいですか?

defmodule Hexlet.Router do 
    use Hexlet.Web, :router 

    pipeline :browser do 
    plug :accepts, ["html"] 
    plug :fetch_session 
    plug :fetch_flash 
    plug :protect_from_forgery 
    plug :put_secure_browser_headers 
    end 

    pipeline :api do 
    plug :accepts, ["json"] 
    end 

    scope "/api", Hexlet do 
    pipe_through :api 

    resources "/sessions", SessionController, only: [:create, :delete] 
    end 
end 

私は私のAPIにブラウザからAJAX要求を送信しています。私はlocalhost:4000/api/sessionsによってそれに達することができますが、私はでできません。私はそれを逆にしたい。どうやってやるの?

レールにconstraints: { format: :json }を追加すると、この機能が有効になります。

答えて

1

これにはtrailing_format_plug(GitHubHex)を使用できます。

は、エンドポイントにプラグを追加し、それが動作するはずです:

defmodule MyApp.Endpoint do 
    use Phoenix.Endpoint, otp_app: :my_app 
    ... 
    plug TrailingFormatPlug 
    plug MyApp.Router 

end 
+0

私はこれを試してみましたが、それでも404を受けるが見つかりません。 – asiniy

+0

@asiniy 'Plug MyApp.Router'の前に' TrailingFormatPlug'を 'lib/endpoint.ex'に入れてみてください。 – Gazler

関連する問題