5

我有一个食谱的 Rails 模型。它有一个属性,views,它计算它被查看了多少次。

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

@recipe = Recipe.find(params[:id])

然后我增加查看次数并保存:

@recipe.views = @recipe.views + 1
@recipe.save

这在本地工作顺利,但在 Heroku 上,保存显然不会发生。没有错误被抛出。

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

我可以让它工作的唯一方法是设置

config.cache_classes = false

在环境/生产.rb

这显然不是我想要的,但我对如何从这里开始感到困惑。

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

4

2 回答 2

6

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

于 2015-03-25T16:06:25.410 回答
0

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

更新:已修复

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

〜回答每个Azzar

于 2013-10-09T06:14:13.930 回答