Любой простой способ изменить имя для модели? - PullRequest
2 голосов
/ 20 сентября 2010

Недавно я создавал приложение, в котором есть модель Books, которая представляет собой таблицу базы данных и связана с несколькими моделями / контроллерами.Недавно я узнал, что вместо книг его нужно называть публикациями (просто пример) ...

Теперь я хочу обновить базу данных и все упоминания в приложении.Есть ли простой способ сделать это в Rails 3. Или мне нужно перенести эту конкретную таблицу (через версию?) И вручную обновить все ссылки в приложении?

Спасибо

Ответы [ 2 ]

1 голос
/ 20 сентября 2010

РЕДАКТИРОВАТЬ

Вы можете продолжать использовать те же модели и, следовательно, сохранить ссылки во всем приложении.Именно из-за вашей новой схемы базы данных вам придется установить имя таблицы для конкретной модели. Также вы можете использовать метод alias_attribute, чтобы вы могли продолжать ссылаться на старые имена атрибутов, даже если вы изменили имена столбцовв вашей таблице. Например:

class Book < ActiveRecord::Base
    set_table_name 'publications'
    set_primary_key 'id'
    alias_attribute :id,:publication_id
end
0 голосов
/ 22 сентября 2010

Нет, нет способа автоматически переименовать модель.

Мое предложение состояло бы в том, чтобы просто удалить модель и воссоздать ее с новым именем, поскольку обычно это проще, чем переименовывать все файлы, созданные при создании. Убедитесь, что ваши миграции правильные!

Однако, что касается кода, вам придется сделать это трудным путем. Некоторые текстовые редакторы могут выполнять поиск / замену по нескольким файлам, что может быть удобно.

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