Есть ли простой способ переименовать контроллер и модель в моем приложении и все экземпляры в соответствующем коде?
Я использую textmate, будет ли это так же просто, как использовать функцию замены и заменить слово «Отправить» на «Отчет»?
Есть ли простой способ переименовать контроллер и модель в моем приложении и все экземпляры в соответствующем коде?
Я использую textmate, будет ли это так же просто, как использовать функцию замены и заменить слово «Отправить» на «Отчет»?
Если вы используете textmate, используйте «command-shift-f» для поиска строки во всем вашем проекте.
Вам нужно изменить имя Контроллер и связанные с ним Модель, Представления, Помощники, Тесты. и маршруты, имена файлов, имена классов и имена в определениях классов.
Я нашел два способа сделать это, но прежде чем что-либо попробовать, я рекомендую вам создать резервную копию вашего приложения, предпочтительно с помощью системы контроля версий программного обеспечения, такой как Git и Github.com.
Ваш первый вариант - сделать это вручную, и здесь есть хорошее объяснение того, как это сделать: Как переименовать контроллер и модель rails в проекте
Другой способ - destroy
ваш контроллер и модель, а затем generate
новый, это удалит все файлы, которые были сгенерированы в первый раз, и заменит их новыми. Майкл Хартл хорошо объясняет это решение в своем онлайн-руководстве по Ruby on Rails здесь: http://ruby.railstutorial.org/chapters/static-pages#sidebar-undoing_things
Это решение, которому я следовал, когда мне нужно было внести это изменение в свое приложение, мне нужно было заменить созданный мной каркас MVC с именем board
на новый с именем product
.
<сильный>1. Первый
Я сделал резервную копию своей работы в макете доски, app/views/boards/index.html.erb
<сильный>2. Затем
Я выполнил приведенные ниже команды rails в окне терминала.
$ rake db:rollback
$ rails destroy scaffold board name:string description:text image:string price:decimal
$ rails generate scaffold product product_type:string name:string description:text image:string price:decimal
$ rake db:migrate
<сильный>3. Наконец
Я скопировал резервную копию файла boards/index.html.erb во вновь созданный файл app/views/products/index.html.erb и нашел & заменить в моем текстовом редакторе в этом файле, чтобы заменить board
на product
.
Я думаю, что второй вариант намного надежнее и быстрее, но важно внести это изменение на ранней стадии вашего проекта, прежде чем вы внесете слишком много ручных изменений в код. Было бы лучше просто потратить немного больше времени на планирование ваших имен MVC и таблиц базы данных, прежде чем вы начнете свой проект.
Вы также можете использовать гем rails_refactor для переименования контроллера, модели и т. д. Для получения дополнительной информации проверьте https://github.com/jcrisp/rails_refactor
Чтобы переименовать контроллер и модель, используйте этот гем https://github.com/jcrisp/rails_refactor.
И да и нет. Вы можете переименовать его таким образом, но вам также потребуется переименовать файлы, иначе Rails не будет знать, где искать файлы, соответствующие новой модели/контроллеру/и т. д. отчета.