gpt4 book ai didi

ruby-on-rails - 向表 Rails 3 添加列后出现未知属性错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:31 25 4
gpt4 key购买 nike

我对 Rails 非常陌生,完全被难住了。我真的也需要这个工作,因为它是另一个更大的主要是 Javascript 项目的一部分,而 Rails 部分刚刚被甩给了我。我必须向 page_events 表添加列(添加的列是 student_id、student_name 和 survey_name),所以我进行了迁移,rake db:migrate,一切顺利。这是我的 schema.db 的相关部分

create_table "page_events", :force => true do |t|
t.string "page"
t.integer "num_focus", :default => 0
t.integer "num_distracted", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "time_focused", :default => 0
t.integer "time_distracted", :default => 0
t.integer "total_time", :default => 0
t.string "session_id"
t.string "student_id"
t.string "student_name"
t.string "survey_name"
end

然而,当我尝试将数据发布到 page_events 页面时,服务器响应 500 内部服务器错误

ActiveRecord::UnknowAttributeError (unknown attribute: student_id):app/controllers/page_events_controller.rb:51 in 'new'

我尝试发布数据,但没有 student_name、student_id 或 survey_name,但效果很好。没有 500 错误,我发送的数据按预期显示在 page_events 索引上。我检查了所有地方,但找不到任何关于此的结论,我非常紧张地打破它,因为正如我所说,我对 Rails 很陌生。我看到一些建议是重新生成模型等,但我不知道这是否有帮助。我在代码中唯一可以找到具有显式表名和列的地方是在 schema.db 中,并且如上所示,似乎是正确的。请帮助...

我正在部署到一个 heroku 应用程序,我不知道这是否有影响......

最佳答案

完成迁移后,您需要执行 heroku restart,因为应用程序正在生产模式下运行,并且会在运行迁移之前缓存数据库模式。重新启动应用程序将重新缓存架构。不过,自从您发布此消息后,您的应用程序可能已经被 Heroku 重新启动,并且问题现在已经消失。

关于ruby-on-rails - 向表 Rails 3 添加列后出现未知属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com