Есть ли простой способ переименовать контроллер и модель в моем приложении и все экземпляры в соответствующем коде?
Im, используя textmate, было бы так же просто, как использовать функцию replace и заменить слово Post на Report?
Есть ли простой способ переименовать контроллер и модель в моем приложении и все экземпляры в соответствующем коде?
Im, используя textmate, было бы так же просто, как использовать функцию replace и заменить слово Post на Report?
Если вы используете textmate, используйте "command-shift-f", чтобы искать строку во всем вашем проекте.
Вам нужно изменить имя Контроллер и связанных Модели, Представлений, Помощников, Тесты и Маршруты, имена файлов, имена классов и имена в определениях классов.
Я нашел два способа сделать это, но прежде чем вы попробуете что-нибудь, я рекомендую вам создать резервную копию вашего приложения, желательно с помощью системы управления версиями программного обеспечения, например Git и Github.com.
Ваш первый вариант - сделать это вручную, и есть хорошее объяснение, как это сделать здесь: Как переименовать контроллер и модель рельсов в проекте
Другим способом является 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 в вновь созданное приложение /views/products/index.html.erb и сделал поиск и замените в моем текстовом редакторе на этот файл, чтобы заменить board
на product
.
Я думаю, что второй вариант гораздо более надежный и быстрый, но важно сделать это изменение на раннем этапе вашего проекта, прежде чем вы внесете слишком много ручных изменений в код. Было бы лучше просто потратить немного времени на планирование ваших имен MVC и таблиц базы данных до начала вашего проекта.
Вы также можете использовать rails_refactor gem для переименования контроллера, модели и т.д. для более подробной информации https://github.com/jcrisp/rails_refactor
Чтобы переименовать контроллер и модель, используйте этот драгоценный камень https://github.com/jcrisp/rails_refactor
Да и нет. Вы можете переименовать его таким образом, но вам также нужно будет переименовать файлы, а Rails не будет знать, где искать файлы, соответствующие новой модели/контроллеру отчета и т.д.