1
私は自分のプラグインモジュールをこのよう
http://www.phoenixframework.org/docs/understanding-plug#section-module-plugs
セイを作成することができます
、私はリクエストのヘッダーとその値がありますかどうかを確認したかったし、彼らはcorrentた場合、いない場合は、現在の要求とリターンを終了し、さらに継続しますおそらくjsonでは特定のステータスとメッセージが表示されます。
しかし、プラグモジュールからhtmlやjsonなどを返すことはできません。コントローラに渡されたときに渡された接続構造を変更することしかできません。
それではどうすればいいですか?代わりに特定のキーを追加して、コントローラーでそれを確認する必要がありますか?しかし、それは多くの繰り返しを作成するだろうか?
# plug module
def call(conn, default) do
if condition1
assign(conn, :my_key, %{status: :ok, msg: "okkkeey"})
else
assign(conn, :my_key, %{status: :error, msg: "we have problems")
end
# my_controller
def action1(conn)
# check for :my_key and its status
私がhtmlを返すと、どうすれば適切に処理できますか?リダイレクトしてから停止しますか?それともその逆ですか?それともステータスを置くだけですか? – Meji
停止はあなたのパイプラインを止めるでしょう、あなたのプラグの最後の部分としてそれを呼び出すことができますし、あなたはそれの前に好きなことをすることができます。あなたのケースであなたがすべきことは、アプリケーションによって異なります。たとえば、ユーザーが認証されていない場合、 'Phoenix.Controller.put_flash'を使用してフラッシュメッセージでログインページにリダイレクトしたい場合があります – Gazler
ありがとう............... – Meji