地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

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