Rails:'找不到表'错误

时间:2011-07-21 21:08:12

标签: ruby-on-rails production-environment

我开发了一个简单的rails应用程序,它在我的开发机器上运行完美。

当我把它放在生产服务器(Phusion Passenger / Nginx)上时,它会在my_app/log/production.log文件中返回该错误:

ActiveRecord::StatementInvalid (Could not find table 'categories')

有什么问题?

PS:命名错误后,表名被手动编辑,但在开发模式下效果很好。我不怀疑错误的错误。

2 个答案:

答案 0 :(得分:6)

  1. 确保您已在生产服务器上运行数据库迁移

  2. 在Rails中手动编辑表格是一个巨大的 no no 。它会给你带来比头脑更多的麻烦。如果你需要改变某些东西,你就更好地生成一个新的迁移来改变它 - 即使它只是一个名称改变。 (但是你可以回滚数据库更改,删除最后一次迁移并创建一个新的 - 但就像我说的那样 - 它比它的价值更麻烦)

  3. 确保您的架构xml文件正确或至少与实际架构匹配。您可以删除它并运行rake:db:migrate以生成一个新的。

答案 1 :(得分:0)

您可以手动为ActiveRecord模型分配表名,以防止这些误导错误。

class Category < ActiveRecord::Base
  self.table_name = 'categories'
end