在我的控制器的索引操作中,我設置了image = AppImage.new(:path => (Rails.root.to_s + "/highlands_girl.jpg"))
。然後我設置$image = image
。Rails全局變量在控制器動作間變爲零
然後我有其他控制器操作,我再次調用這個全局變量,有時它是零,圖像不顯示,但有時它會。我可以從我的日誌文件中的調試打印中知道,對全局變量的所有調用都是在它被設置之後進行的,所以在我再次調用image
之前發生了$image=image
,並且發現它爲零。特別是,我有一個視圖調用五次的縮略圖動作。在一些負載中,所有五個呼叫都會給出一個圖像,而在一些情況下,則沒有。
如果它很重要,當我在Heroku上進行託管時,這並不是問題,但是由於我將它移動到了AWS,所以它有這個問題。如果可能的話,我想避免將它寫入數據庫,這就是爲什麼我使用new而不是create。
全局變量?真? – apneadiving
在Rails中使用應用程序級別的變量是一種非常危險的做法,我看到你已經在路上困住了這個bug。重構代碼以避免應用程序級別的變量是個好主意。 –
哈哈我認爲這可能是一個壞主意,猜測是這樣。有沒有將其保存到數據庫的替代方法? – mlstudent