0

这就是发生的事情。我曾经有一个名为 Message 的模型,然后我想重命名它,所以我创建了一个迁移,将该表从 Message 重命名为 Thread。我后来进行了迁移,然后将其添加到该表中。

这很好用,它使用 db:migrate 来推进我们现有的数据库。现在我注意到,当我执行 db:create 来创建一个新的数据库时,它失败了,因为 rails 创建了消息,然后当它向消息添加一个字段时,我得到一个:

uninitialized constant AddActiveMessageIdToWalls::Message

我认为问题在于我还将所有控制器和模型从消息重命名为线程,现在迁移时迁移时找不到模型?听起来对吗?

您如何在铁路世界中处理这个问题?谢谢

4

2 回答 2

3

我喜欢更新我的 db/schema.rb 以避免这种情况。因此,当我需要在新环境中创建数据库时,我只需要执行rake db:createand rake db:schema:load. 不需要迁移。

于 2011-08-23T01:53:30.337 回答
0

最简单的解决方案:只需在早期迁移中添加一个空 Message < ActiveRecord::Base 子类。

... migration file ...
class Message < ActiveRecord::Base;end
于 2011-08-22T22:35:21.687 回答