Rails: Почему моя модель равна нулю, хотя моя миграция создает таблицу? - PullRequest
0 голосов
/ 23 марта 2019

Я недавно решил сменить название модели.Поэтому я отбросил базу данных, вызывая 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 Ответ

2 голосов
/ 23 марта 2019

Почему моя модель ноль

Это не так. Непонятно, откуда вы сделали этот вывод.

NoMethodError: неопределенный метод `all 'для Set: Class

Имя вашей модели (Set) совпадает с классом из стандартной библиотеки . Из-за того, как работает автозагрузка rails, имя Set разрешается в классе stdlib, а не в вашей модели. Переименуйте вашу модель с несуществующим именем (как подсказывает предупреждение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...