Ruby on Rails 3 kullanıyorum ve denetleyicilere daha sonra erişilebilen @variable_name
değişkenini ayarlamak için middlewar'leri kullanmaya çalışıyorum.Bir middleware'de tüm uygulamamda erişilebilen bir değişken nasıl ayarlanır?
Örneğin benim katman
class Auth
def initialize(app)
@app = app
end
def call(env)
@account ||= Account.find(1)
@app.call(env)
end
end
düzgün @account
değişkeni ayarlamak Yukarıdaki kod, ama bu (..., kontrolörler, modeller, görünümlerinde) benim uygulamada kullanılamaz. Yani, Bunu nasıl başarabilirim?
Neye ihtiyacım yapmanın bir yolu olduğunu this answer görülen
ama @account
değişkeni "doğrudan erişilebilir" istiyorum. O kullanmadan, bu şekilde ancak böyle, benim görünümlerinde örneğin o kullanılabilir hale: Bu bir Middelware ile yapılabilir eğer bilmiyorum
<%= debug @account %>
Bunun Middleware'de yapılabileceğini sanmıyorum. 'Before_filter: set_my_var' ile' ApplicationController' içinde denediniz mi? – Wukerplank
@Wukerplank Bir ara yazılımda buna ihtiyacım var. – user502052
Kirli ve olası bir şeyleri 'Thread.current [: my_var] = Account.find (1) 'içinde saklamak gibi bir şey denemek isteyebilirsiniz. – Wukerplank