2009-07-21 24 views
0

我已經爲正在運行的Rails應用添加了一個「帳戶」變量,並且在開發環境中使用了mongrel服務器進行了測試。一切正常。我將自己的環境設置爲生產並使用我們的Apache服務器,並且突然沒有任何工作。經過大量調試後,我發現賬戶變量在我的方法中成功地置位,但不是保存(也就是說,一旦它離開設置它的方法,它就是零)。我可以打電話保存或保存!儘可能多次,但仍未設置。爲什麼在Rails中不保存屬性?

該屬性是可訪問的,我在日誌中沒有看到任何錯誤......它只是不能保存。

任何想法是怎麼回事?

-Jenny

回答

0

多一點信息,以幫助你對爲什麼會發生:

退房文件db/schema.rb - 它包含了數據庫的Ruby表示,更新每個遷移。 Rails中的模型將其屬性基於這個文件。

因此,當您在開發模式下遷移時,架構文件會更新。當您移至生產模式時,該文件將保留,並且Rails不知道您要分配的列不存在。因此,您更新的對象接受屬性分配,發送查詢並繼續前進 - 不會注意到該屬性沒有真正保存。

這就是我對它的理解 - 希望這可以幫助你完成任務!

2

啊,我轉移到開發,但不是生產。我不認爲這可能是遷移,因爲如果是這樣的話,我推斷,我將無法訪問@ video.account或其他,因爲我會得到一個「方法不存在」的錯誤(這是我在開發移植之前得到的是什麼)。