Рубин на рельсах с консоли - (Таблица не существует) - PullRequest
3 голосов
/ 22 января 2012

Я изучаю RoR в Windows 7 с InstantRails.

Я успешно вошел в sqlite3 и создал таблицу с именем Trades с несколькими столбцами. Я выбрался из этого в рубиновую консоль.

>> class Trade < ActiveRecord::Base; end
=> nil
>> trade = Trade.new
=> #<Trade barterID: nil, title: nil, message: nil, created_at: nil, updated_at: nil>
>> trade.class
=> Trade(Table doesn't exist)

Я дважды проверил это, вернувшись в sqlite3, и он определенно есть. Я знаю, что таблица не называется «Trade», поэтому я попытался переименовать ее в «Trade», но это дало еще больше ошибок. Я прочитал, что имя таблицы должно быть в формате множественного числа, поэтому я думаю, что у меня есть эта часть права.

Любая помощь в том, почему он говорит, что таблица не существует? Я приведу любые детали, о которых я не задумывался.

Ответы [ 3 ]

6 голосов
/ 04 апреля 2014

rails g model Trade предоставит вам правильный шаблон, но если вы просто хотите исправить свой файл миграции, убедитесь, что вы создали эту таблицу: trades (множественное число, а не единственное число) .

Rails выдаст вам ошибку (таблица не существует), если у вас есть торговая (единственная) таблица в базе данных. Я думаю, что эта ошибка вводит в заблуждение.

2 голосов
/ 22 января 2012

В Rails вы должны сделать полную абстракцию своей БД. Что бы вы ни работали с sqlite или mysql, шаги одинаковы (за исключением первого конфигурирования, но sqlite не требуется).

Обычный процесс выглядит следующим образом:

  1. Создание модели с рельсовым генератором

    Рельсы генерируют модель Торговля

  2. Отредактируйте связанный файл миграции (что-то вроде 2012xxxxxxxx_create_trades.rb в db/migrate/) и поместите в него схему Trade. синтаксис здесь

  3. Выполнить rake db:migrate, чтобы применить изменения к базе данных

  4. Используйте вашу модель

0 голосов
/ 22 января 2012

Вы создали таблицу вручную?Если это так, то это не «Rails-способ» создания таблиц / моделей.Вы должны использовать rails Generator:

rails g model Trade

Генератор создаст класс модели в app / models и файл миграции в каталоге db / migrate.Затем добавьте столбцы БД, используя миграционный DSL .

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