【问题标题】:Rails: Why is my model nil even though my migration creates the table?Rails:即使我的迁移创建了表,为什么我的模型为零?
【发布时间】:2019-03-23 08:31:17
【问题描述】:

我最近决定更改模型的名称。所以我放弃了调用rails db:drop的数据库。

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

我删除了架构文件。

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

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

当我尝试调用模型类的方法时...('Set')

> 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.

所以这里似乎模型确实存在。但它在控制台中不存在。

【问题讨论】:

    标签: ruby-on-rails model


    【解决方案1】:

    为什么我的模型是 nil

    不是。不清楚你是从哪里得出这个结论的。

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-30
      • 2021-10-06
      • 1970-01-01
      • 2014-01-13
      • 2019-03-29
      • 2019-12-16
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多