Rails:即使我的迁移创建了表,为什么我的模型仍为零?

时间:2019-03-23 08:31:17

标签: ruby-on-rails model

我最近决定更改模型的名称。因此我删除了呼叫rails db:drop的数据库。

使用高级文本编辑器查找并替换了模型名称,然后将所有相关目录重命名为符合约定;包括迁移文件等。

我删除了架构文件。

我打电话给rails db:create来创建数据库:没有错误

我打电话给rails db:migrate来创建表和架构:没有错误。

当我尝试在模型类上调用方法...(“设置”)

> Set.all
NoMethodError: undefined method `all' for Set:Class
from (pry):4:in `<main>'

要进行测试,我运行了rails generate model Set,并得到了以下内容:

Running via Spring preloader in process 2042
      invoke  active_record
The name 'Set' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.

所以在这里看来该模型确实存在。但是它在控制台中不存在。

1 个答案:

答案 0 :(得分:2)

  

为什么我的模型无效?

不是。目前尚不清楚您从何处得出此结论。

  

NoMethodError:Set:Class的未定义方法“ all”

模型名称(Set)与class from the standard lib相同。由于rails自动加载的工作方式,名称Set解析为stdlib类,而不是模型。用不存在的名称重命名模型(正如警告所提示的那样)。