Скажем, я забыл добавить поле в свою модель. Как я могу добавить его в чистоту? Нужно ли мне повторно запускать рельсы, или я могу где-нибудь редактировать файл?
Как добавить поле после запуска рельсов, создать модель/эшафот?
Ответ 1
Либо вы должны повторить запуск своего эскиза/модели (сдует существующий код)
или вы можете добавить поле непосредственно в базу данных и ваше представление
Rails3:
rails generate migration add_column_name_to_table_name column_name:string
или
Rails2.x:
ruby script/generate migration addColumnToTableName column_name:string
который будет генерировать файл в db/migrate, который вы можете применить с помощью "rake db: migrate"
Затем вы должны изменить свои представления, чтобы добавить соответствующий код для отображения/редактирования нового поля.
Дополнительная информация: http://railscasts.com/episodes/83-migrations-in-rails-2-0
Ответ 2
rails g scaffold Users name:string
Если мне нужно добавить новое поле в уже сгенерированный эшафот,
rails generate migration add_url_to_users url:string
и измените файл _form.htm.erb как
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :url %><br>
<%= f.text_field :url %>
</div>
Но моя проблема в том, что я могу сохранить имя только не url