在我們的Rails 4.2應用程序中有一個型號payment_request.rb
,我們想強制在其控制器payment_requests_controller.rb
中使用before_action
重新加載它。有沒有辦法重新加載?Rails 4.2:如何強制重載模型定義?
0
A
回答
1
@Mariah建議你的方式來重新加載模型類的實例,但如果你的目的是要真正重新加載類的定義,你可以用這一招做到這一點:
before_action :reload_model
def reload_model
Object.send(:remove_const, :PaymentRequest)
load 'app/models/payment_request.rb'
end
在這個類正在重新加載期間,請小心不可能從您的應用程序的相同實例的其他部分訪問PaymentRequest
的副作用。其實我懷疑在控制器代碼中這樣做是否正確。
當某些常數值應該更新時(因爲它是在第一類加載時填充並在時間內發生更改)重新加載類可能很有用。但是,如果在應用程序生效期間發生這種情況,最好考慮將基於常量的解決方案更改爲更合適的解決方案。
1
您希望模型在什麼時候重新加載?不知道爲什麼你想要在before_action上重新加載,你可以簡單地在任何方法中調用「@ payment_request.reload」
如果你希望在before操作中,你必須在控制器中添加before_action。你還必須定義一個它調用的函數。例如,
before_action :reload
def reload
@payment_request.reload
end
+0
我們正在尋找重新加載類定義。 – user938363
相關問題
- 1. Rails緩存模型變量 - 如何「強制重載」?
- 2. 如何強制Rails重新加載application.js?
- 3. 如何強制Rails加載所有模型?
- 4. mod_wsgi強制重載模塊
- 5. Concrete5 - 如何強制自定義模板?
- 6. 強制功能模板/函數重載爲特定類型
- 7. Rails模型定義
- 8. 強制在類定義中重載重載?
- 9. Rails:在模型上強制訂購
- 10. Rails自定義元模型?
- 11. Heroku Rails強制SSL重定向循環
- 12. 強制重載EntityManager
- 13. 強制eclipse重新加載Python模塊
- 14. 強制重載指令的模板
- 15. 如何強制在JBoss 4.2中重新編譯jsps?
- 16. 如何強制自定義渲染?
- 17. 強制重繪模型圖標
- 18. 如何強制重新加載WebImageView?
- 19. 如何強制重新加載實體?
- 20. Rails強參數:如何接受模型和非模型屬性?
- 21. zkoss MVVM更改爲模型強制重新加載網格
- 22. SQL用於摧毀Rails的模型4.2
- 23. 單頁多模型和驗證Rails 4.2
- 24. 如何強制淘汰賽重新綁定自定義裝訂?
- 25. 如何強制下載Windows模塊
- 26. 如何在軌道控制檯中重新加載模型?
- 27. 如何強制boost :: bind模板函數重載?
- 28. 重定向和強制下載
- 29. php重定向+強制下載
- 30. 強制下載後的Codeigniter重定向
'無法從您的應用程序的相同實例的其他部分訪問PaymentRequest' - 其他用戶是否會因重新加載而受到影響?我們的應用程序是多租戶。 – user938363
@ user938363我相信這取決於您的應用程序託管方式(線程,進程,Web和應用程序服務器等)和使用情況。我不確定多租戶是什麼意思,但你肯定有風險。如果除了重新加載類,還有其他方法,我會建議使用它們。 – twonegatives