deviseとjsonで認証を作るときに422エラーでハマった
こんにちは。
現在ここを参考にrailsとandroidの連携をしています。
ユーザー登録のテストをcurlでしようとしたのですが
Completed 422 Unprocessable Entity
{"success":false,"info":{"email":["can't be blank"],"password":["can't be blank"]},"data":{}}
のエラーが出てかなりハマりました。
どうやらregistration_controller.rb内のcreateアクションにあるbuild_resourceが問題のようです。
build_resourceにPOSTでデータを渡すまでは動いてるようですがbuild_resourceがデータベースにうまくデータを渡せていないみたいです。
この3日間ずっとググって情報を探してたのですが全然見つからずに悩んでいたのですが無事解決しました。
registration_controller.rbにsign_up_paramsアクションを追加してbuild_resourceを変更します。
#/app/controllers/api/v1/registration_controller.rb def sign_up_params params.require(:user).permit(:email, :password, :password_confirmation) end def create build_resource(sign_up_params) resource.skip_confirmation! #(以下略)
参考にしたサイトのコメント欄にありました。。。
そして無事にandroid appからの登録もできるようになりました。