Ruby on rails 3.2 生产中现有属性的rails3未定义方法错误

Ruby on rails 3.2 生产中现有属性的rails3未定义方法错误,ruby-on-rails-3.2,postgresql-9.3,dev-to-production,Ruby On Rails 3.2,Postgresql 9.3,Dev To Production,在开发中运行时,未遇到以下错误 将新属性添加到模型后,部署到临时服务器时,模型的页面将生成 ActionView::Template::Error (undefined method `[...]' for #<Optionrate:)x)))... 有许多布尔值具有相同的前缀,或者属性名称中可能有两个下划线,我更改了名称,重新运行了所有内容,得到了相同的行为 更新两个模型后,另一个模型生成相同的未定义方法错误。因此,这种错误显然是由于结构变化而产生的 迁移所遵循的步骤是: pg_du

在开发中运行时,未遇到以下错误

将新属性添加到模型后,部署到临时服务器时,模型的页面将生成

ActionView::Template::Error (undefined method `[...]' for #<Optionrate:)x)))... 
有许多布尔值具有相同的前缀,或者属性名称中可能有两个下划线,我更改了名称,重新运行了所有内容,得到了相同的行为

更新两个模型后,另一个模型生成相同的未定义方法错误。因此,这种错误显然是由于结构变化而产生的

迁移所遵循的步骤是:

pg_dump the existing DB
rake db:migrate VERSION=0
deploy changes
rake db:migrate
psql load existing data
**更新**
事实证明,环境是不同的。首先,我在一条花园小径上;需要调用生产环境的控制台 RAILS\u ENV=生产包exec RAILS c

事实上,这些属性并不存在于控制台查询中


无法理解为什么它是在开发模式下工作而不是在生产模式下工作。

如果有人碰到这个问题

控制台rake命令不一定知道要执行的环境。因此,我实际上没有修改生产数据(作为一个大文件,我没有阅读所有postgresql消息

pg_dump the existing DB
RAILS_ENV=production bundle exec rake db:migrate VERSION=0
deploy changes
RAILS_ENV=production bundle exec rake db:migrate
psql load existing data
指定环境

pg_dump the existing DB
rake db:migrate VERSION=0
deploy changes
rake db:migrate
psql load existing data
pg_dump the existing DB
RAILS_ENV=production bundle exec rake db:migrate VERSION=0
deploy changes
RAILS_ENV=production bundle exec rake db:migrate
psql load existing data