Я вызываю приложение rails из другого приложения, используя ActiveResource. Мне нужно предоставить идентификатор нового объекта первому приложению (да, контроллер create в этом приложении знает, как обрабатывать получение идентификатора), поэтому я делаю что-то вроде этого:
a = ActiveResourceModel.new(:id => 1231231, :name => "test")
a.save
Однако вместо того, чтобы делать POST для создания нового ресурса, он помещает его, заставляя получающее приложение попытаться обновить ресурс с идентификатором 1231231, который, конечно, не существует (я хочу его создать!), Поэтому я в итоге получаю ошибку 404 из-за этого.
В некотором тестировании проблема, кажется, в ActiveResourceModel.new? который возвращает false, в то время как ActiveResourceModel.exists? тоже возвращает false (отлично, два метода, которые должны быть противоположными, возвращают одно и то же!).