when thinking about the user, password, and site variables in ActiveResource::Base을 실현하여 한 요청에서 수정할 수 있으며 다음 요청시 수정 된 상태로 유지됩니다. 이것은 클래스 변수/속성의 모든 사용에 적용되기 때문에 바람직하지 않은 동작 및 광범위한 문제로 보입니다.레일즈는 요청간에 클래스 변수를 재설정 할 수있는 방법이 있습니까?
레일은 클래스 수준 상태 변경을 정리 (예 : 기본값으로 재설정)하여 각 요청을 초기 상태로 시작하는 메커니즘을 제공합니까?
그렇지 않은 경우 각 요청의 시작 부분에 다시 적용될 클래스 변수를 초기화하는 방법을 추가 할 수 있습니까? 이것은 스레드 세이프 스토리지와 결합 될 수 있으므로 클래스 변수를 훨씬 덜 문제가됩니다. class_attribute의 가능한 수정은 무엇입니까?
업데이트 : the linked question above에서 설명한 바와 같이, 내 관심이 가져온 특정한 경우 내가 사용자별로 ActiveResource :: Base.user과 암호를 설정했다는 사실이
했다. 다시 설정하지 못하면 후속 페이지로드시 다른 사용자의 자격 증명을 사용하여 한 사용자 대신 REST 요청을하게됩니다.
구체적인 예를 들기 위해 포스트를 업데이트했습니다. –
class_attribute를 확장하는 것이 좋은 방법이 될 것 같습니다. 이미 원하는 동작 (상속 가능한 클래스 수준 특성)을 제공하기 때문입니다. 그것은 모든 요청에 대해 저장하고 재설정 할 기본값을 전달할 수 있으며 스레드 안전성을 보장하기 위해 다른 게시글에서 제안 된 @KandadaBoggu와 같이 Thread.current를 사용할 수 있습니다. –