我开发了一个简单的rails应用程序,它在我的开发机器上运行完美。
当我把它放在生产服务器(Phusion Passenger / Nginx)上时,它会在my_app/log/production.log
文件中返回该错误:
ActiveRecord::StatementInvalid (Could not find table 'categories')
有什么问题?
PS:命名错误后,表名被手动编辑,但在开发模式下效果很好。我不怀疑错误的错误。
答案 0 :(得分:6)
确保您已在生产服务器上运行数据库迁移
在Rails中手动编辑表格是一个巨大的 no no 。它会给你带来比头脑更多的麻烦。如果你需要改变某些东西,你就更好地生成一个新的迁移来改变它 - 即使它只是一个名称改变。 (但是你可以回滚数据库更改,删除最后一次迁移并创建一个新的 - 但就像我说的那样 - 它比它的价值更麻烦)
答案 1 :(得分:0)
您可以手动为ActiveRecord模型分配表名,以防止这些误导错误。
class Category < ActiveRecord::Base
self.table_name = 'categories'
end