Как добавить поле в Ruby on Rails? - PullRequest
5 голосов
/ 22 октября 2009

Я новичок в RoR, и я только что использовал scaffold для генерации таблицы и создания страниц для операций CRUD. Теперь я хочу добавить новое поле к этому. Одно место, которое я нашел, говорит мне, как это сделать в базе данных, но есть ли способ сделать это, когда оно добавит поле также ко всем страницам, или это просто ручная операция, и мне нужно убедиться, что я знаю все мои поля впереди?

Ответы [ 4 ]

13 голосов
/ 22 октября 2009

Чтобы добавить новый столбец в базу данных

$ script/generate migration add_fieldname_to_tablename fieldname:string 
$ rake db:migrate

Для обновления ваших представлений вы можете снова запустить скаффолд с обновленным списком полей. Он будет препятствовать замене ваших миграций, но вы можете заставить его заменить ваши взгляды.

$ script/generate scaffold tablename fieldname:string old_field_1:string ...

При быстром ответе а он перезапишет представления, но не старые миграции. Это также не изменит ваши существующие данные.

3 голосов
/ 22 октября 2009

Сначала вы напишете миграцию, чтобы добавить поле, запустите миграцию, затем вам нужно будет повторно запустить эшафот для регенерации представлений и т. Д. Осторожно, это приведет к удалению отредактированных файлов ранее. Конечно, вместо того, чтобы снова создавать леса, вы можете вручную добавить ссылки на новое поле, где это необходимо.

1 голос
/ 23 октября 2009

Вам придется обновлять базу данных, несмотря ни на что (не забудьте «rake db: migrate» после создания миграции!)

Что касается интерфейса, вам повезло больше: плагин formtastic делает ваши взгляды такими:

'f.inputs' вычисляет поля формы на лету на основе атрибутов вашей модели. Это не распространяется на сложные формы, которые требуют специального лечения, но обычные, вы получите их автоматически.

Для простого для понимания учебника, посмотрите последнюю версию Railcast (Railscast # 184, вам придется поискать ее в Google, я не могу опубликовать 2 ссылки, потому что я еще не достаточно крутой для stackoverflow, простите)

Railcast # 185 должен продолжать покрывать форму, и он должен быть опубликован в следующий понедельник.

0 голосов
/ 22 октября 2009

Требуется сделать вручную или регенерировать помост.

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