我有一個食譜的Rails模型。 它有一個屬性視圖,它記錄了它被查看的次數。固定 - Rails模型:保存在本地但不在Heroku上工作
在我的控制器的表演動作,我取一般的模型對象:
@recipe = Recipe.find(params[:id])
然後我增加的觀看次數,並保存:
@recipe.views = @recipe.views + 1
@recipe.save
這個工程順利在本地,但在Heroku上,保存顯然不會發生。 沒有錯誤引發。
我可以在Heroku的rails控制檯上運行這個完全相同的代碼,然後它就可以工作。
的唯一途徑,我可以得到它的工作,是設置
config.cache_classes = false
在environmenst
/production.rb
這是obvously不是我想要的,但我很爲難如何走從這裏。
我在Cedar堆棧上運行Rails 3.2.8,Ruby 1.9.3,在開發和生產中都使用Postgresql 9.1。
更新:修正
我覺得愚蠢 - 主要捂臉! 原來我在app/controllers目錄中有一個帶有控制器的另一個較老定義的文件。我會悄悄地去撞我的頭。
只是爲了清理代碼,你可以使用'@ recipe.increment!(:views)'作爲你的計數器(也是!bang會拋出任何錯誤)。你用什麼數據庫? – veritas1
這是postgresql 9.1本地和Heroku。我有一種強烈的感覺,這是某種緩存問題(這種行爲甚至沒有被Heroku擊中)。不過,我想知道爲什麼cache_classes = false使它工作。如果我將其設置爲true,則保存停止工作。 – Azzar
嘗試'heroku重啓'。 –