Ruby on rails Rails—在Staging中未定义方法,但在本地开发中很好

Ruby on rails Rails—在Staging中未定义方法,但在本地开发中很好,ruby-on-rails,capistrano,undefined,Ruby On Rails,Capistrano,Undefined,我正在处理一个项目,我添加了一个迁移,以将项目\u页面\u说明字段添加到公司模型。当我运行迁移之后 @company = Company.first @company.project_page_description 在本地工作,但在部署后,每当我尝试访问项目\u页面\u说明时,都会出现未定义的方法错误。为什么它在本地工作而不是远程工作 我已经部署了所有代码,因此代码库是相同的,我已经运行了所有迁移,我正在使用Bundler和Capistrano,我正在部署到CentOS服务器 另外,除了停止

我正在处理一个项目,我添加了一个迁移,以将
项目\u页面\u说明
字段添加到
公司
模型。当我运行迁移之后

@company = Company.first
@company.project_page_description
在本地工作,但在部署后,每当我尝试访问
项目\u页面\u说明
时,都会出现未定义的方法错误。为什么它在本地工作而不是远程工作

我已经部署了所有代码,因此代码库是相同的,我已经运行了所有迁移,我正在使用Bundler和Capistrano,我正在部署到CentOS服务器


另外,除了停止编程之外,我还能做些什么来阻止这种情况再次发生?

检查您的捆绑程序组、应用程序配置和环境初始值设定项文件,也许您定义了一些仅用于开发而不用于暂存的内容?还可以尝试在登台时打开控制台,并尝试手动加载和调用找不到的模块。请记住,如果模块尚未加载,require将返回true。

看起来迁移尚未运行。也许您使用开发环境运行它们?试着像这样运行它们:
RAILS\u ENV=staging bundle exec rake db:migrate

成功迁移后,我可以在数据库中看到该列,但它仍然为我提供了相同的
未定义方法
project\u page\u description'for#`之后重新启动服务器/控制台了吗?当应用程序启动时,这些列只从数据库中读取一次。当我加载到开发中时,一切正常,但当我加载“测试”(远程环境)时,我看到公司模型没有一个名为
project\u page\u description
的列。当我查看
config/environments/test.rb
时,rails正在缓存类,但是从rails\u根目录运行
sudotouch tmp/restart.txt
并不能修复它