ActiveResource를 사용하여 다른 레일 앱을 호출하고 있습니다. 나는 (이 응용 프로그램은 ID를 수신 처리하는 방법을 알고에 예, 컨트롤러가 생성) 첫 번째 응용 프로그램에 새 개체의 ID를 제공해야합니다, 그래서 나는 같은 것을 할 : 그러나ID를 지정하면 PUT하는 대신 ActiveResource POST를 생성 할 수 있습니까?
a = ActiveResourceModel.new(:id => 1231231, :name => "test")
a.save
을 대신하고 POST로 인해 새로운 리소스가 생성되어 수신하는 앱이 ID 1231231로 리소스를 업데이트하려고 시도합니다. 물론 존재하지 않습니다 (생성하려고합니다!). 때문에 404 오류가 발생합니다. 이.
몇 가지 테스트를하고 있는데 문제가 ActiveResourceModel.new에있는 것 같습니다. false를 돌려주는 동안, ActiveResourceModel.exists? 역시 false를 반환합니다. (대단한데, 반대되는 것으로 생각되는 두 가지 메소드는 똑같이 반환합니다!).
추가하는 것을 잊어 버렸습니다. 생성하는 것은 new + save와 같습니다. id thing ... 내가 만드는 엔티티는 두 앱에서 동일하며 동기화해야합니다. 각 응용 프로그램의 ID 간 매핑을 사용하는 대신 uuids를 ID로 사용하고 주위를 전달하는 것이 더 쉬울 것이라고 결정했습니다. – diegogs
create는 자원을 직접 게시하려고 시도합니다. http://github.com/rails/rails/blob/master/activeresource/lib/active_resource/base.rb#L1327 imho와 같은 복제는 피해야합니다. 공통 데이터를 중심으로하는 세 번째 앱은 덜 문제가 될 수 있습니다. – Lucas