我意識到when thinking about the user, password, and site variables in ActiveResource::Base,他們可以修改一個請求,並會保持修改下一個請求。這似乎是不受歡迎的行爲,並可能是一個普遍的問題,因爲它適用於所有類變量/屬性的使用。Rails是否有辦法在請求之間重置類變量?
是否Rails提供了一種機制來清除對類級別狀態的更改(例如重置爲默認值),以便每個請求都以原始狀態啓動?
如果沒有,是否可以添加一個初始化類變量的方法,這將在每個請求的開始時重新應用?這可以與線程安全存儲相結合,使類變量的問題更少。可能的修改class_attribute?
更新:
正如我在the linked question above描述的,把這個給我注意具體情況是事實,我是基於每個用戶的基礎上設定的ActiveResource :: Base.user和密碼。如果我沒有重置它們,那就意味着代表一個用戶的REST請求將在後續頁面加載時使用另一個用戶的憑證。
我更新了該帖子以給出具體示例。 –
看起來像擴展class_attribute將是一個很好的方法來做到這一點,因爲它已經提供了我想要的行爲(可繼承的類級屬性)。它可以傳遞一個默認值,它可以保存並在每個請求上重置,並且可以使用Thread.current作爲@KandadaBoggu在其他帖子中提出的建議,以確保線程安全,如果這是個問題。 –