【发布时间】:2013-05-03 08:24:25
【问题描述】:
我刚刚运行迁移以将:new_column 添加到:my_table。 这是一个序列化的列(整个项目中的第一个),所以我已经将配置添加到模型中:
serialize :new_column, Array
我的迁移如下:
add_column :my_table, :new_column, :text
之后,我运行了rake db:reset,以便播种新数据,并签入rails console,以确保数据正确添加到我的:new_column。这一切都在那里。
到目前为止一切顺利,但是...在rails server 中,我的应用程序将简单地因错误而停止:
ActiveModel::MissingAttributeError in TestController#index
missing attribute: new_column
好吧,我只知道我的控制器正在尝试访问@my_table_model.new_column。我还检查了schema.db,那里一切都很好。
可能是什么原因造成的?
【问题讨论】:
-
您是否在 Rails 控制台和 Rails 服务器的开发环境(而不是测试或生产环境)中操作?如果您的测试数据库与开发数据库不同,您是否将更改应用到两个数据库?
-
是的...我只在开发中运行。查看来自控制台的消息:
Loading development environment (Rails 3.2.9);和来自服务器的消息:=> Rails 3.2.9 application starting in development on http://0.0.0.0:3000。控制台访问数据和服务器停止ActiveModel::MissingAttributeError:S -
您在应用迁移后重新启动了 Rails 服务器?
-
当然...感谢您的帮助。但我使用同一个终端来移动迁移、控制台和服务器。所以我必须关闭一个才能去另一个......而且我已经做过很多次了!也许有一个特定的程序可以“真正”重置我不知道的服务器?
-
没有。我以为你会重新启动,但这是我能想到的唯一其他事情。我很茫然,但下一个看到这个的人不必问:)
标签: ruby-on-rails database serialization