【问题标题】:Database attribute saving in Development but not in Production在开发中保存数据库属性但在生产中不保存
【发布时间】:2016-05-09 11:38:16
【问题描述】:

我在生产中遇到数据库错误。但在开发中没有错误。

ActiveModel::MissingAttributeError (can't write unknown attribute `invited_by_id`):

invited_by_id 是 Devise Invitable gem 添加到我的用户表的列。在第一次将我的 Devise Invitable 实现推送到生产环境然后尝试邀请新用户后,我遇到了这个错误。

我已确认在我的开发表和生产表中都存在受邀的_by_id。我已经通过 Rails 控制台对每个环境进行了多次检查。我还完成了 rake db:migrate 两次以获得良好的度量(在生产中),第一次添加了 Devise Invitable 列,第二次当然没有新的迁移可以运行,因为已经添加了列。 Devise Invitable 还向同一个用户表添加了许多其他列,这些列已成功迁移并且没有产生错误。我也成功编辑了一个。 (Google 搜索、设计 Invitable Github 问题,以及对我的开发和生产环境领域的彻底审查,除了鼓励检查该列是否存在之外,什么也没有产生——确实存在。)

在这种情况下,是否需要注意设计邀请表、用户表或开发与生产数据库?对于其他一些情况,我使用的是 Devise Invitable 1.5.5、Rails 4.2.4,我的生产数据库位于 Heroku。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 heroku devise devise-invitable


    【解决方案1】:
    ActiveModel::MissingAttributeError (can't write unknown attribute `invited_by_id`)
    

    查看此错误消息,您的生产数据库中缺少invited_by_id 列。确保在生产环境中运行迁移,然后重试。这应该可以解决您的问题。

    Here is the same issue 在 gem 的 github 页面上报告。

    您也可以尝试重新启动您的 heroku 应用,这似乎可以多次解决此类问题:)

    【讨论】:

    • 谢谢!专栏肯定在那里。我已经多次确认。我可以查询特定用户并查看它。我运行 rake db:migrate 两次以获得良好的效果。真的很神秘!
    • 你能展示你的相关模型和完整的错误跟踪吗?
    • 啊哈!我刚刚运行 heroku restart 并修复了它。原来它根本不是代码。感谢您的帮助!
    • 这就是我要建议你的:重新启动你的 heroku 并尝试一下 :)) 很高兴看到你的问题得到解决 :)
    • 谢谢!如果您添加您的 heroku 重启答案,我可以将其标记为正确的答案。哇!
    猜你喜欢
    • 2016-04-08
    • 2022-07-16
    • 2020-07-30
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    相关资源
    最近更新 更多