这是发生了什么。我曾经有一个名为Message的模型,然后我想重命名它,所以我创建了一个迁移,将该表从Message重命名为Thread。我之后进行了迁移,然后添加到该表中。
这很好用,db的条款:迁移到我们现有的数据库。现在我注意到,当我执行db:create创建一个新的db时它会失败,因为rails创建了Message,然后当它向消息添加一个字段时我得到一个:
uninitialized constant AddActiveMessageIdToWalls::Message
我认为问题在于我还重命名了所有的控制器和放大器。从消息到线程的模型现在迁移时迁移无法找到模型?听起来不错吗?
你如何在rails世界中处理这个问题?感谢
答案 0 :(得分:3)
我喜欢保持我的db / schema.rb更新以避免这种情况。因此,当我需要在新环境中创建数据库时,我只需要执行rake db:create
和rake db:schema:load
。不需要迁移。
答案 1 :(得分:0)
最简单的解决方案:只需添加一个空消息<早期迁移中的ActiveRecord :: Base子类。
... migration file ...
class Message < ActiveRecord::Base;end