【问题标题】:(ActiveModel::UnknownAttributeError) in heroku, however works in local host and Heroku local(ActiveModel::UnknownAttributeError) 在 heroku 中,但是在本地主机和 Heroku 本地工作
【发布时间】:2020-08-06 19:38:42
【问题描述】:

我正在构建一个超级基础的格斗游戏词典。该应用程序在本地主机上运行,​​在 Heroku 本地上没有问题。

这是我的模型

class Vocabulary < ApplicationRecord
  validates :word, presence:true
  validates :definition, presence:true

  has_many :users, :through => :favorites
end

这是我的架构

create_table "vocabularies", force: :cascade do |t|
    t.string "word", null: false
    t.string "definition", null: false
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

这是我在运行 heroku run rails 控制台时收到的错误

/app/vendor/bundle/ruby/2.4.0/gems/activemodel-5.2.3/lib/active_model/attribute_assignment.rb:53:in `_assign_attribute': unknown attribute 'Word' for Vocabulary. (ActiveModel::UnknownAttributeError)

我试过了: Heroku rake db:迁移, 重置我的数据库, 从heroku中删除应用程序并重建, 哭得很厉害

我完全没有想法,所以非常感谢任何帮助。

谢谢!

【问题讨论】:

  • 什么时候出现错误?堆栈跟踪是什么?
  • 请用错误堆栈跟踪编辑问题
  • 从“Word”属性发送到哪里?看来您正在使用大写字母“W”

标签: ruby-on-rails heroku


【解决方案1】:

所以我的应用遇到了完全相同的问题。我在模型中添加了一个新字段,由于某种原因,在推动更改时,heroku 没有选择该字段并且显示未知属性错误。但是,当我检查 heroku 控制台时,我可以看到它确实在那里。 尽管如此,这是我解决它的步骤。

  1. 首先使用heroku rake pg:reset 重置heroku 中的数据库(假设您使用的是pg)

  2. 然后,再次运行迁移... - heroku rake db:migrate(在运行此迁移时,它应该注销它实际上正在运行带有您要添加的字段的特定迁移)。

  3. 如果您有种子数据,那么... - heroku rake db:seed

【讨论】:

  • 如果这不适用于实时应用怎么办?无法重置数据库如何解决?
猜你喜欢
  • 2020-06-10
  • 2019-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
  • 2013-10-31
  • 2020-02-02
  • 2021-12-01
相关资源
最近更新 更多