Я вызываю приложение rails из другого с помощью ActiveResource. Мне нужно поставить идентификатор нового объекта первого приложения (да, контроллер создать в этом приложении знает, как обращаться с получающим идентификатором), так что я что-то вроде этого:Может ли ActiveResource POST создать вместо PUTTing его при указании идентификатора?
a = ActiveResourceModel.new(:id => 1231231, :name => "test")
a.save
Однако, вместо того, чтобы делать POST для создания нового ресурса, который он запускает, заставляя приемное приложение пытаться обновить ресурс с идентификатором 1231231, который, конечно, не существует (я хочу его создать!), Поэтому я получаю ошибку 404 из-за это.
Выполнение некоторых тестов проблемы, похоже, в ActiveResourceModel.new? который возвращает false, а ActiveResourceModel.exists? также возвращает false (отлично, два метода, которые должны быть противоположны, возвращают одинаковые!).
Я забыл добавить, создать то же самое, что и новый + сохранить. Идентификатор ... Сущности, которые я буду создавать, одинаковы в обоих приложениях и должны быть синхронизированы. Вместо того, чтобы иметь сопоставление между идентификаторами в каждом приложении, мы решили, что было бы проще использовать uuids в качестве идентификаторов и передать их. – diegogs
создает попытки отправить ресурс напрямую. http://github.com/rails/rails/blob/master/activeresource/lib/active_resource/base.rb#L1327 Вам следует избегать подобных реплик imho. 3-е приложение для централизованных данных может быть менее проблематичным. – Lucas