情報をThread.current
ハッシュに格納する方法(たとえば、current_user、現在のサブドメインなど)について、相反する意見が寄せられています。この手法は、モデルレイヤー内でのその後の処理(クエリスコープ、監査など)を簡素化する方法として提案されています。
- Railsでスレッド変数が断続的になるのはなぜですか?
- RailsのAPIラッパーでThread.currentを使用する代わりに
- Thread.current []値とクラスレベル属性はRailsで安全に使用できますか?
多くの人は、MVCパターンを壊すため、このプラクティスは受け入れられないと考えています。他の人はアプローチの信頼性/安全性について懸念を表明し、私の2部構成の質問は後者の側面に焦点を当てています。
Thread.current
ハッシュは、そのサイクル全体を通じて、1つの応答に対してのみ使用可能でプライベートであることが保証されていますか?応答の最後にスレッドが他の着信要求に引き渡され、それによってに格納されて
Thread.current
いる情報が漏洩する可能性があることを理解しています。応答が終了する前に(たとえばThread.current[:user] = nil
、コントローラーから実行することによって)そのような情報をクリアすることは、after_filter
そのようなセキュリティ違反を防ぐのに十分でしょうか?
ありがとう!ジュゼッペ