Próbuję napisać od kilku dni do zwykłej aplikacji szyny modelowej od POSTman i nie mogę wymyślić, jak to zrobić, ani znaleźć żadnych informacji o tym, jak to zrobić. Zrób to.Pisanie na szynach za pomocą interfejsu JSON API
Moja aplikacja ma model użytkownika z polem nazwy. Wszystko, co próbuję zrobić, to zmienić nazwę zdalnie poprzez JSON za pomocą POSTman.
Każda pomoc w tym zakresie jest doceniana, w tym link do podstawowego zasobu, jak to zrobić.
Wyobrażam sobie, że to dość proste.
EDIT: tutaj znajduje się zrzut ekranu z wyjścia listonosz
EDIT 2:
z dziennika serwera:
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)
Transakcja dzieje, ale ISN rekord Naprawdę jest aktualizowany. Czy muszę coś zmienić w kontrolerze? To zwykły kontroler generowany przez szyny bez żadnych zmian.
EDIT 3:
Oto moje wyjście z po prostu będzie http://localhost:3000/users/1.json
{
"created_at": "2013-07-02T21:51:22Z",
"id": 1,
"name": "Arel",
"updated_at": "2013-07-02T21:51:22Z"
}
znowu, ja już nic z rusztowania zmieniło, a ja nie byłem w stanie dowiedzieć się, jak sformatuj JSON, aby zagnieździł go pod użytkownikiem, tak jak sugeruje odpowiedź.
Oto odpowiednia część mojego kontrolera:
# 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
Nie rozumiem dlaczego jest to tak trudne. Po prostu próbuję zaktualizować nazwę za pomocą JSON ...
czym dokładnie polega problem? Czy widzisz jakieś dane wyjściowe w dzienniku serwera rails? – DiegoSalazar
Po prostu nic nie robi. Kiedy umieszczam adres http: // localhost: 3000/users/1.json i wybieram PUT z kluczem jako nazwą, a wartość jako Jeff 204 nie zwraca treści – Arel
@diego.greyrobot Właśnie dodałem zrzut ekranu z tego, co próbowałem zrobić. – Arel