Это на самом деле правильно. Обычно, если вы делаете какую-то случайную рубиновую программу, и вы создали класс, вы, вероятно, захотите выбросить некоторые переменные экземпляра и т. Д., Но теперь это работает в Rails. Модель представляет собой класс и таблицу базы данных.
В файле db/migrate
вы увидите файл миграции, который сделал вашу таблицу Purchase в вашей базе данных, и внутри вы увидите, что она генерирует столбцы, которые вы просили. Когда вы сохраняете данные в базе данных, вы сохраняете объект instanced (в общем).
Откройте Rails консоли (тип rails console
в к терминалу) и попробовать это:
Purchase.count
Purchase.create!(:tracking_id => 1)
Purchase.count
my_purchase = Purchase.first
my_purchase.tracking_id
Вы увидите, что у вас есть 0 объектов покупки/строк в базе данных на первом. Затем вы можете создать его и передать значение переменной экземпляра (идентификатор отслеживания). Когда вы снова проверите счет, вы увидите 1. Когда вы возьмете первый (и единственный) элемент в элементе, вы сможете использовать динамический метод tracking_id в качестве аксессора.
Предлагаю вам больше узнать о Rails, чтобы узнать больше о том, почему это правильно и что происходит.
Найдено duplicate- http://stackoverflow.com/questions/8919170/rails-3-1-how-override-inherited-resources-and-permit-rails-scaffolding-to-work Однако, я не -выберите бит -c? – Alex
Этот вопрос другой. Вы говорите о том, что ваш класс пуст, и этот вопрос был о том, что контроллер пуст. – MrDanA