중첩 된 ActiveResource 모델 (다른 모델의 네임 스페이스 내에 있음)이 있습니다. 전화를 걸려 고 시도 중 save
제기 :중첩 된 ActiveResource를 저장할 때 어떻게 접두사 매개 변수를 지정할 수 있습니까?
ActiveResource::MissingPrefixParam: client_id prefix_option is missing
어떻게 필요한 접두사를 제공합니까? 여기
내 클래스의 : 여기class Foo::Bar < ActiveResource::Base
self.site = "http://www.example.com"
self.prefix = "/clients/:client_id"
self.element_name = "policy"
self.collection_name = "policies"
end
내 저장 시도의 :
bar = Foo::Bar.new :client_id => 123
bar.valid? # => true
bar.client_id # => 123
bar.save # => ActiveResource::MissingPrefixParam...
시간과 다시 나는 이것에 대한 해명에 대해 검토 한 결과,하지만 난 단지 같은 명령을 찾을 수 :
을When a GET is requested for a nested resource and you don’t provide the prefix_param an ActiveResource::MissingPrefixParam will be raised.
Google 서버의 API 끝점에 액세스하려고합니다. ActionController::RoutingError (No route matches "/clients//policies/" with {:method=>:post})
: 내 응용 프로그램은 서버의 로그가 나에게 말한다 http://www.example.com/clients//policies
에 그 요청을 할 수 있도록 http://www.example.com/clients/[client_id]/policies
에서,하지만 난 분명히 client_id
공급에 실패하고있다.
감사하지만 작동하지 않습니다. (나는 그것이 어떻게 작동하는지 알 수 없다. 그러나 나는 그것을 어떻게해서든지 시험해 보았다). 1)'client_policies_path'는 없습니다 (저는'ActiveRecord'가 아닌'ActiveResource'를 사용하고 있습니다. 따라서 경로는 내 루트 파일에 존재하지 않으며 모델에 지정되어 있습니다). 2) 나는 콘솔을 사용하고있는 폼을 사용하지 않고 컨트롤러 속성'@policy'와'@client'를 설정하는 것은 결과에 아무런 영향을 미치지 않습니다. 나는'ActiveResource'를 사용하고 있으며 단지 인스턴스에 대해'save'를 호출합니다. 문제의 정책 인스턴스는 이미 자신의': client_id'를 알고 있습니다. - 내가 너의 대답을 오해하니? – JellicleCat