【问题标题】:Heroku doesn't set boolean field in rails appHeroku 不在 Rails 应用程序中设置布尔字段
【发布时间】:2012-10-17 04:44:01
【问题描述】:

它将参数作为replacement_emails 传递,这是正确的。来自日志:

Parameters: {"utf8"=>"✓", "authenticity_token"=> ... "replacement_emails"=>"1"}, "commit"=>"submit", "id"=>"1"}

但它没有在数据库中设置。日志中没有错误消息,什么都没有。它与 SQLite 一起开发。

有什么想法吗?为什么它在 Heroku 的开发中有效但在生产中无效?

【问题讨论】:

  • 你看过heroku的日志了吗?
  • 那是heroku日志。就像我说的,没有错误信息。
  • 您应该发布相关的模型代码和迁移。此外,Heroku 使用 Postgres,而不是 SQLite - 使用相同的环境进行开发和生产总是一个好主意。
  • 模型为空。除了belongs_to :user 里面什么都没有

标签: ruby-on-rails-3 heroku


【解决方案1】:

我今天遇到类似问题时遇到了您的问题,也许能够解释发生了什么。

在 Heroku 上运行 Rails 迁移不会自动导致您的应用程序重新启动,因此您的新代码可能会通过其现有数据库连接看到数据库的旧视图。这可能会导致一些奇怪的行为(例如访问在执行迁移之前不存在的列)。

应用程序的手动重启将导致它重新连接到数据库并查看更改。

回滚或重新部署也会导致应用程序重新启动并重新连接到数据库。

请记住在运行 rails 迁移后重新启动您的应用程序。

【讨论】:

  • 我现在倾向于在迁移后重新启动。
【解决方案2】:

在对部署进行回滚后,然后重新部署——它突然就起作用了。不知道出了什么问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-06-21
    • 2015-01-01
    • 1970-01-01
    相关资源
    最近更新 更多