2009-12-16 4 views
0

J'ai ce code:client ActiveResource comporte pas comme prévu

require 'rubygems' 
require 'activeresource' 

ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/exercises.log") 

class Exercise < ActiveResource::Base 
    self.site = "http://localhost" 
    exercises = Exercise.find(:all) 

    ex = Exercise.find(741) 
    ex.name += "_TEST" 
    ex.save 
end 

Et l'URL générée pour ex.save est

POST http://localhost/exercises.xml 

Le résultat est la création d'un nouveau record au lieu d'une mise à jour de record eexisting ...

Je me serais attendu à l'URL pour être

PUT http://localhost/exercises/741.xml 

et bien sûr je m'attendais à ce que l'enregistrement existant soit mis à jour.

Des idées où chercher?

Merci

Répondre

1

Déplacer ce bloc:

exercises = Exercise.find(:all) 

    ex = Exercise.find(741) 
    ex.name += "_TEST" 
    ex.save 

en dehors de la définition de la classe.

Questions connexes