ActiveResource 모델 간의 연결이 공유됩니다. 따라서 한 모델에서 형식을 설정하면 은과 다른 모델의 형식을 유지합니다. 그러나 두 개의 개별 모델에서 .connection.format
메서드를 호출하면 새 형식을 설정할 때마다 해당 형식이 변경됩니다. 그렇다면 Profile
이 두 모델에 대해 다음 .connection.format
형식 :json
와 두 번째로드있어 내 원래의 질문 (나는 완전히 무슨 일이 있었는지 이해하지 못했다) 완전히 달랐다 ActiveResource::Formats::JsonFormat
두 개의 서로 다른 ActiveResource 모델이 두 개의 다른 연결 객체를 사용하도록 만드는 방법은 무엇입니까?
로 바뀝니다 - 당신은 편집 역사를 볼 수 있습니다 원본 버전을 참조하십시오. 다행스럽게도 필자는 ... 더 반응을 얻을 것이다
증명하십시오 rails console
에서 다음
class Location < ActiveResource::Base
self.format = :xml
end
class Profile < ActiveResource::Base
self.format = :json
end
...
>> Location.format
=> ActiveResource::Formats::XmlFormat
>> Location.connection.format
=> ActiveResource::Formats::XmlFormat
지금까지 너무 좋아 ... Location
모델과 연결입니다 올바른 형식이어야합니다.
>> Profile.format
=> ActiveResource::Formats::JsonFormat
보통 모양은 Profile
의 형식입니다.
>> Location.format
=> ActiveResource::Formats::XmlFormat
좋아요 ... Location.format 여전히 프로필 모델을 주를로드 한 후 동일합니다 : 당신이 전화를 시도 할 때까지이 모델은-게으른로드 자신의 파일과 코드가 포함되지 않도록 있습니다 클래스 이름.
>> Location.connection.format
=> ActiveResource::Formats::JsonFormat
여기에서 문제가 시작됩니다. 우리는 프로필 모델에 전화를했습니다 후에는 형식이 동일하다고 가정 하지있는 Location.connection.format
>> Profile.connection.format
=> ActiveResource::Formats::JsonFormat
을 f'ed. (모든, => "이 /something.xml이"에서) 당신이 Location.find 같은에 전화를 걸 때 완전히 파괴 할 구문 분석됩니다 - 그것은 구문 분석을 시도하는 내 질문을 추측 xml
json
로 지금은 - 두 연결을 어떻게 분리합니까? 콘솔에서이 테스트를 추가
편집 (또는 그렇지 않으면이 문제를 해결) :이 ... 버그 같은 느낌
>> Location.connection == Profile.connection
=> true