Редактировать модель Rails из командной строки - PullRequest
9 голосов
/ 07 января 2011

Я довольно новичок в Ruby on Rails, и мне было интересно, есть ли способ отредактировать схему базы данных для модели.

Например, у меня в приложении есть модель подписчика - способ, которым я ее создал, был rails generate scaffold Subscriber email:string

Но теперь я хочу имя и в модели подписчика. Есть ли простой способ сделать это? Я поместил много кода в мои текущие контроллеры и представления, поэтому я не обязательно хочу разрушать эшафот, но я хотел бы отредактировать модель.

Заранее спасибо,

HWRD

P.S. Я использую Ruby on Rails 3

Ответы [ 2 ]

12 голосов
/ 07 января 2011

Модель ActiveRecord проверяет таблицу, которую представляет.На самом деле вам не нужно менять свою модель, просто чтобы добавить новое поле (если вы не хотите добавлять проверки и т. Д.).

Что вы хотите сделать, это сделать новую миграцию, а затем перенести вашу базу данных вверх:

rails g migration AddNameToSubscribers name:string
rake db:migrate

Затем вы можете начать ссылаться на поле имени в ваших контроллерах и представлениях.

(Эта команда генератора может показаться немного волшебной, но генератор rails распознает этот формат и сгенерируетсоответствующий код add_column и remove_column. Дополнительную информацию см. в руководстве по миграции Rails .)

2 голосов
/ 07 января 2011

Если вы имеете в виду изменение схемы базы данных вашей модели, вы захотите использовать миграции.

Вы будете делать такие вещи, как

add_column :city, :string
remove_column :boo

http://guides.rubyonrails.org/migrations.html

Если вы имеете в виду только поиск моделей и обновление данных внутри каждого экземпляра, используйте ответ @ apneadiving.

...