Rails: переименование контроллера и соответствующей модели - PullRequest
3 голосов
/ 15 апреля 2011

Есть ли простой способ переименовать контроллер и модель в моем приложении и всех экземплярах в соответствующем коде?

Я использую textmate, будет ли это так же просто, как использовать функцию замены и заменить слово Post на Report?

Ответы [ 5 ]

7 голосов
/ 16 ноября 2012

Вам необходимо изменить имя контроллера и связанного с ним Модель , Представления , Помощники , Тесты & Маршруты каталоги, имена файлов, имена классов и имена в определениях классов.

Я нашел два способа сделать это, но прежде чем что-то попробовать, я рекомендую вам назад-вверх вашего приложения , желательно с системой контроля версий программного обеспечения, такой как 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.Затем

Я запустил команды ниже рельсов в окне терминала.

$ 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 и таблиц базы данных, прежде чем начинать проект.

3 голосов
/ 26 марта 2014

Вы также можете использовать rails_refactor gem для переименования контроллера, модели и т. Д. Для получения дополнительной информации проверьте https://github.com/jcrisp/rails_refactor

2 голосов
/ 30 апреля 2013

Для переименования контроллера и модели используйте этот драгоценный камень https://github.com/jcrisp/rails_refactor

1 голос
/ 20 апреля 2011

Если вы используете textmate, используйте 'command-shift-f ", чтобы найти строку во всем вашем проекте.

0 голосов
/ 15 апреля 2011

Да и нет.Вы можете переименовать его таким образом, но вам также нужно будет переименовать файлы, иначе Rails не будет знать, где искать файлы, соответствующие новой модели отчета / контроллеру / и т. Д.

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