Ruby on rails Rails模型:在本地保存,但在Heroku上不保存

Ruby on rails Rails模型:在本地保存,但在Heroku上不保存,ruby-on-rails,heroku,ruby-on-rails-3.2,Ruby On Rails,Heroku,Ruby On Rails 3.2,我有一个食谱Rails模型。 它有一个属性,views,它统计它被查看的次数 在控制器的显示操作中,我正常地获取模型对象: @recipe = Recipe.find(params[:id]) 然后我增加视图计数并保存: @recipe.views = @recipe.views + 1 @recipe.save 这在本地运行没有任何问题,但在Heroku上,保存显然没有发生。 不会抛出任何错误 我可以在Heroku上的rails控制台中运行完全相同的代码,然后它就可以工作了 我能让它工作的

我有一个食谱Rails模型。 它有一个属性,views,它统计它被查看的次数

在控制器的显示操作中,我正常地获取模型对象:

@recipe = Recipe.find(params[:id])
然后我增加视图计数并保存:

@recipe.views = @recipe.views + 1
@recipe.save
这在本地运行没有任何问题,但在Heroku上,保存显然没有发生。 不会抛出任何错误

我可以在Heroku上的rails控制台中运行完全相同的代码,然后它就可以工作了

我能让它工作的唯一方法就是设置

config.cache_classes = false
在environmentst/production.rb中

这显然不是我想要的,但我不知道该怎么走


我在Cedar堆栈上运行Rails 3.2.8和Ruby 1.9.3,在开发和生产中都使用Postgresql 9.1。

从编辑的问题正文中复制答案,以便从“未回答”过滤器中删除此问题:

更新:已修复

原来我在app/controllers目录中有一个包含另一个较旧控制器定义的文件


~answer per

FWIW对于寻找自己解决方案的未来搜索者来说,Benjamin Tan关于heroku restart的回答(在评论中)在我遇到类似问题时对我有效。

只要清理代码,你可以使用
@recipe.increment!(:views)
用于计数器(同时!砰的一声将抛出任何错误)。您使用的数据库是什么?本地和Heroku上都是postgresql 9.1。我有一种强烈的感觉,这是某种缓存问题(这个动作甚至没有在Heroku上被击中)。尽管如此,我还是想知道为什么cache\u classes=false会让它工作。如果我将其设置为true,save将停止工作。不会抛出任何错误,但您在日志中看到任何提示吗?为什么不使用印象派gem,它更容易,并且是承认错误的+1示例:)哦,见鬼!我真不敢相信我浪费了这么多时间不尝试这个!