def inside_rack_middleware
MyModel.update_attributes(:ip => request.ip)
redirect somewhere else
end
是可能的嗎?是否可以從機架中間件調用導軌模型方法?
def inside_rack_middleware
MyModel.update_attributes(:ip => request.ip)
redirect somewhere else
end
是可能的嗎?是否可以從機架中間件調用導軌模型方法?
得到通過@ supercoco9的answear在twitter上,「如果你的中間件是在機架/ Rails堆棧,你可以直接通過AR使用模型」
這樣做嗎?然後請接受 – 2012-05-30 09:00:19
是的,你可以從你的中間件中訪問您的AR模型。我在我的中間件中添加了byebug,並能夠訪問我的模型。
編輯: - 所以,我開始寫我的Rails應用程序中使用的Rack中間件。我嘗試在中間件中訪問我的AR模型,但其行爲非常有趣。對於全新的服務器啓動後提供的第一個請求,一切都會很好。但在那之後即傳來的任何請求導致錯誤: -
A copy of MyMiddleware has been removed from the module tree but is still active
,我停止了從中間件中訪問AR模型這個錯誤就不見了。 我剛剛開始使用Ruby/Rails,所以我不知道Ruby/Rails/Rack世界中的具體術語。但簡單地說,我只能說Rack中間件只是一種插件,可以讓任何人在任何Rack應用程序中使用。所以我們不應該依賴於我們的中間件內的一種Rails對象。
這個問題沒有人知道嗎? – Christian 2010-03-12 12:31:02