私はElixir 1.3.2とPhoenix 1.2.1が新しく、thisチュートリアルの後にphoenixにユーザオブジェクト(マップ)を投稿しようとしています。私は郵便配達員と正しいURL http://localhost:4000/api/usersを使用しています。最初に私はjsonオブジェクトで未加工の本体を試しましたが、欠落しているキーの例外がありました:予想されるキー "user"がparamsに存在することを期待してください、またはscrub_params/2の呼び出しを適用してください。JSONを使用してPhoenixにマップを投稿するにはどうすればよいですか?
"User"と値: "{email:" [email protected] "、パスワード:" s3cr3t "}"という郵便配達員のformdataオプション。これは、エリクシールAPIからの次のエラー応答をもたらしました。予想されるパラメータがマップであること。"{email: \"[email protected]\", password: \"s3cr3t\"}"
誰かが間違っていることを教えてもらえますか? JSONがマップにシリアライズ/マッチングされるようにするには?
あなたが提案しているフォーマットは機能していません。私はエラーを受け取ります: 予想されるキー "user"がparamsに存在することを期待してキーを送信するか、scrub_params/2の呼び出しを受け入れてください 私はuser:{"email": "[email protected]" "パスワード": "秘密"}しかし、私は得る: 期待されているパラメータはマップ、 "secret \"} "' – programmingheadaches
デベロッパーモードでのリクエストごとに、Phoenixはあなたのパラメータが何であるかを伝えます。例として、私は自分のサービスにログインしていますが、コンソールは '%{" _ csrf_token "=" "..."、 "_utf8" => "✓"、 "session" =>%{" email "=>" [email protected] "、" password "=>" [FILTERED] "}}}。この場合、私はセッションを扱っているので、私の「セッション」キーは最上位にあります。あなたのパラメータリストのトップレベルに「ユーザー」キーがありますか? –
コンソールはフェニックスのコンソールで、http要求のjson本体ではありませんか?私のリクエストボディのルートにユーザーキーがあります – programmingheadaches