【发布时间】:2026-01-13 03:05:01
【问题描述】:
我对 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 应用程序,我不知道这是否会有所不同...
【问题讨论】:
-
页面事件模型中有
attribute_accessible :student_id吗? -
当您将字段 student_id 发布到您的 rails 应用程序时,您是将其发布为整数还是字符串?
-
感谢您的回复,它肯定是以字符串形式发布的,不,我会尝试
attribute_accessible :student_id并告诉您进展如何 -
愚蠢的问题,但是:您是否已将迁移提交到您的存储库?你推了吗? :)
标签: ruby-on-rails ruby heroku migrate