普通のモデルレールアプリ(POSTman)から数日前に書きたいと思っていますが、その方法を理解することはできません。それをやる。JSON APIを使ってRailsに書き込む
私のアプリには名前フィールドを持つユーザーモデルがあります。私がしようとしているのは、POSTmanを使用してJSON経由でリモートで名前を変更することだけです。
これを行う方法についてのヘルプは、基本的なリソースへのリンクを含めていただければ幸いです。
これはかなり基本的だと思います。
EDIT:サーバログから
:ここに郵便配達出力
EDIT 2からのスクリーンショットです
Started PUT "https://stackoverflow.com/users/1.json" for 127.0.0.1 at 2013-07-17 16:53:36 -0400
Processing by UsersController#update as JSON
Parameters: {"name"=>"Jeff", "id"=>"1"}
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", "1"]]
(0.1ms) begin transaction
(0.1ms) commit transaction
Completed 204 No Content in 3ms (ActiveRecord: 0.4ms)
トランザクションが起こったが、レコードISNされます実際に更新されていません。コントローラで何かを変更する必要がありますか?これは、変更のない通常のレール生成コントローラです。
EDIT 3:ここでは
がちょうど再びhttp://localhost:3000/users/1.json
{
"created_at": "2013-07-02T21:51:22Z",
"id": 1,
"name": "Arel",
"updated_at": "2013-07-02T21:51:22Z"
}
に行くから私の出力である、私は足場から何も変わっていないてきた、と私はどのように把握することができていませんJSONをフォーマットして、答えのようにユーザーの下に入れ子にします。
# GET /users/1
# GET /users/1.json
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @user }
end
end
# PUT /users/1
# PUT /users/1.json
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { }
else
format.html { render action: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
これはとても難しいですなぜ私は理解していない:
は、ここに私のコントローラの関連する部分です。私はちょうどあなたが投稿するコントローラについては
のハッシュを作成しますか?あなたは、レールサーバーのログに出力が表示されますか? – DiegoSalazar
それは何もしません。アドレスhttp:// localhost:3000/users/1.jsonを入力し、名前としてキーを使用してPUTを選択し、値がJeff 204の場合、内容は返されません。 – Arel
@diegogreyrobot私はちょうど私がやっていることのスクリーンショットを追加しました。 – Arel