2009-12-16 1 views
0

У меня есть этот код:ActiveResource клиент не ведет себя, как и ожидалось

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 

и сгенерированный URL для ex.save является

POST http://localhost/exercises.xml 

Результат создания новой записи, а не обновление из eexisting записи ...

Я бы ожидал, что URL-адрес, чтобы быть

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

и, конечно же, я ожидал обновления существующей записи.

Любые идеи, где искать?

Благодаря

ответ

1

Переместить этот блок:

exercises = Exercise.find(:all) 

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

ВНЕ определения класса.