Rails 5 проект без activerecord вызывает ошибку генерации модели - PullRequest
0 голосов
/ 08 мая 2018

Я столкнулся с проблемой в проекте, использующем Rails 5.2 без ActiveRecord.

Я запустил команду rails new project --skip-active-record, и это нормально, но когда я запускаю команду для генерации модели, я получаю эту ошибку:

.rvm / драгоценные камни / рубинового 2.5.1 / драгоценные камни / пакетирования-1.16.1 / Библиотека / пакетирования / rubygems_integration.rb: 404: в `block (2 уровня) в replace_gem ': ошибка при загрузке' sqlite3 'Active Записать адаптер. Отсутствует драгоценный камень, это зависит от? sqlite3 не является частью расслоение Добавьте его в свой Gemfile. (Gem :: LoadError)

Я не понял, почему он спрашивает о sqlite 3 в активной записи, если я отключил его, и я ищу по Интернету, и не вижу никого, о ком говорим.

Что не так?

Спасибо

Ответы [ 4 ]

0 голосов
/ 08 мая 2018

Команда

rails g model MODEL

сгенерирует модель, миграцию и приспособления . И это связано с ORM . Таким образом, рельсы будут смотреть на конфигурацию базы данных. Там вы бы упомянули клиента ORM как

adapter: sqlite3

Для этого вам нужно установить sqlite3 gem . Добавить

gem 'sqlite3'

на ваш Gemfile

Если вы хотите добавить только модель, создайте файл в папке app/models. Но какой в ​​этом смысл? Rails будет искать имя таблицы относительно имени класса модели и выдавать ошибку

0 голосов
/ 08 мая 2018

Команда $ bin/rails generate model ... фактически создает миграцию и модель ActiveRecord, поэтому вы получаете ошибку, связанную с базой данных. См. Генераторы моделей .

0 голосов
/ 08 мая 2018

Если вы не хотите использовать ActiveRecord, тогда нет необходимости создавать модель с использованием rails g. Вы можете просто перейти в каталог app/models в своем приложении и создать простой класс ruby ​​для работы с ним в качестве модели.

0 голосов
/ 08 мая 2018

Полагаю, у вас нет ORM. Если это так, то running rails generate model не должен ничего делать, он даже не должен устанавливать sqlite по умолчанию. Попробуйте обновить свой sqlite gem

...