RailsでJSONをPOSTで受け取る方法

f:id:ihatov08:20160801223303j:plain

RailsでJSON形式のデータを受け取ってPOST,createする方法です。


まずはscaffold

$ rails new user_json
$ rails g scaffold user name:string address:string
$ rake db:migrate

postリクエストをDHCを使って送る

chrome.google.com

このChrome extensionを使ってpostリクエストをしてみる。
f:id:ihatov08:20160801223639p:plain

bodyはjson形式を選択してください。
そしてJSONの構文は以下に習ってください。
私はこの構文が間違っていて、2時間つまづいてました。
構文が間違っているとparse errorが発生します。
postリクエスト先はhttp://localhost:3000.users.jsonです。

{ "user": { "name": "acme", "address": "123 Carrot Street" } }

Action Controller Overview — Ruby on Rails Guides

enumを使っている場合

enummを使っている場合は"enum定義"で送信できます。:"enum定義"などではないので注意が必要です。

CSRFエラー

このままだとActionController::InvalidAuthenticityTokenが発生します。そのときはCSRF機能を無効にすればとりあえずはPOSTできます。

class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]
skip_before_filter :verify_authenticity_token

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です