Ruby on rails - METTRE la méthode sur la mise à jour ajax
Quelqu'un pourrait-il me dire pourquoi METTRE cette méthode ne fonctionne pas s'il vous plaît.
$.ajax({
type: "PUT",
dataType: "script",
url: '/resources/35',
data:
{
resource : { pos_y: 45, pos_x: 50 }
}
}).done(function( msg )
{
alert( "Data Saved: " + msg );
});
Serveur dit que j'ai utilisé le méthode GET mais dans ma requête ajax j'ai type: "PUT"
Started GET "/resources/35?resource%5Bpos_y%5D=45&resource%5Bpos_x%5D=50&_=1344001820350" for 192.168.1.89 at 2012-08-03 15:50:20 +0200
Processing by ResourcesController#show as */*
Parameters: {"resource"=>{"pos_y"=>"45", "pos_x"=>"50"}, "_"=>"1344001820350", "id"=>"35"}
User Load (0.3ms) SELECT "users".* FROM "users"
Resource Load (0.1ms) SELECT "resources".* FROM "resources" WHERE "resources"."id" = ? LIMIT 1 [["id", "35"]]
Rendered resources/show.html.erb within layouts/login (2.3ms)
Completed 200 OK in 238ms (Views: 235.9ms | ActiveRecord: 0.4ms)
resources_controller.rb
# PUT /resources/1
# PUT /resources/1.json
def update
@resource = Resource.find(params[:id])
respond_to do |format|
if @resource.update_attributes(params[:resource])
format.html { redirect_to @resource, notice: 'successfully updated.' }
format.js
else
format.html { render action: "edit" }
format.js
end
end
end
J'ai essayé d'ajouter _method: "put" Mais c'est toujours le même
$.ajax({
type: "PUT",
dataType: "script",
url: '/resources/35',
data:
{
resource : { pos_y: 45, pos_x: 50 },
_method: 'put'
}
}).done(function( msg )
{
alert( "Data Saved: " + msg );
});
Serveur:
"ressource%5Bpos_y%5D=45&ressource%5Bpos_x%5D=50&method=mettre&=1344004390840"
Started GET "/resources/35?resource%5Bpos_y%5D=45&resource%5Bpos_x%5D=50&_method=put&_=1344004390840" for 192.168.1.89 at 2012-08-03 16:33:10 +0200
Processing by ResourcesController#show as */*
Parameters: {"resource"=>{"pos_y"=>"45", "pos_x"=>"50"}, "_"=>"1344004390840", "id"=>"35"}
User Load (0.3ms) SELECT "users".* FROM "users"
Resource Load (0.1ms) SELECT "resources".* FROM "resources" WHERE "resources"."id" = ? LIMIT 1 [["id", "35"]]
Rendered resources/show.html.erb within layouts/login (0.8ms)
Completed 200 OK in 93ms (Views: 90.5ms | ActiveRecord: 0.4ms)
J'apprécierais toute aide.
Quel navigateur utilisez-vous ?
Vouliez-vous dire de POSTE, de ne pas METTRE? ....
J'ai mis à jour ma réponse. Vous pouvez essayer ça 🙂
Vouliez-vous dire de POSTE, de ne pas METTRE? ....
J'ai mis à jour ma réponse. Vous pouvez essayer ça 🙂
OriginalL'auteur user1560922 | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
Rails détermine le mettre de la demande par le biais du paramètre _method avec la valeur 'put'.
De ne pas tous les navigateurs prennent en charge la méthode put, rails de tricheurs dans le form_tag. sa mise cette sortie dans une mise en forme:
Donc ce que vous avez à faire est ceci:
hey qui fonctionne très bien. Pouvez-vous m'expliquer pourquoi nous allons convertir le hash d'une chaîne JSON?
JSON.stringify
OriginalL'auteur Michael Koper