Как изменить имя приложения Ruby on Rails?


у меня есть приложение Ruby on Rails, которое было создано с помощью:

rails new old_name -d mysql

теперь я хочу изменить имя приложения, чтобы быть new_name.

просто изменить имя папки приложения будет недостаточно, потому что имя базы данных, например, также должно быть изменено (от old_name_development до new_name_development). Интересно, есть ли другие места в автоматически сгенерированных файлах, которые нужно изменить.

есть ли встроенная команда для изменения приложений имя ?

8 54

8 ответов:

есть плагин Rails, чтобы сделать это за вас. Очень удобно.

https://github.com/get/rename

в Rails 3 есть ссылки на имя приложения в следующих файлах:

  • config / application.РБ
  • config / environment.РБ
  • config / environments / development.РБ
  • config / environments / production.РБ
  • config / environments / test.РБ
  • config / initializers / secret_token.РБ
  • config / initializers / session_store.РБ
  • config / mongoid.yml (при использовании Mongoid)
  • в config/маршруты.РБ
  • config.ru
  • Rakefile
  • app / views / layouts / application.формат html.erb, в теге заголовка

в Rails 3 класс приложения определяется в config / application.rb, и упоминается в ваших файлах среды (config/environment.rb, config / environments/*.rb) и config/routes.рубидий. Я думаю, что это все, но вы должны узнать довольно быстро от rails сервера, если вы пропустили один. :)

  • config / application.РБ
  • конфиг/среды.РБ
  • config / environments/*.РБ
  • в config/маршруты.РБ

Что сказал, Если у вас есть очень конкретная причина для того, чтобы ее изменить, я бы не стал беспокоиться. На самом деле не влияет на приложение каким-либо другим образом.

Rails 3 приложение можно переименовать с помощью https://github.com/morshedalam/rename

выполните следующие действия, чтобы заменить old_name на new_name из корня вашего проекта Rails (3.0.7).

replace old_name new_name -- ./config/environment.rb ./config/application.rb ./Rakefile ./config/initializers/secret_token.rb ./config/environments/production.rb ./config/environments/development.rb ./app/views/layouts/application.html.erb ./config/routes.rb config.ru ./config/environments/test.rb ./config/initializers/session_store.rb

но будьте уверены, чтобы работать

fgrep old_name . -iR

или что-то подобное сначала, чтобы проверить, нет ли вхождения old_name в вашем проекте, которые не должны быть заменены.

EDIT:

конечно, для этого вам нужно установить команду replace.

и примите во внимание, что ваше имя приложения будет CamelCased, так что, возможно, вам придется попробовать несколько различных вариантов, как OldName против NewName.

возможно, вам придется переименовать приложение, если вы хотите или должны создать модель или каркас с тем же именем, что и имя приложения. Просто так случилось со мной. Используется https://github.com/morshedalam/rename на рельсах 3.2.13 и никаких проблем до сих пор.

для этого я использовал старую добрую командную строку :

grep -r old_name * | cut -d: -f1 | xargs sed -i .bak 's/old_name/new_name/g'

эта команда заменяет old_name на new_name во всех файлах, которые она находит old_name. Тем не менее, он создает файл резервной копии с расширением '.бак. Эти файлы могут быть легко удалены, как только вы проверите все прошло хорошо.

преимущество этого заключается в том, что он не зависит от версии rails.

на рельсах 4

добавить

gem 'rename'

чтобы Gemfile тогда сделать

bundle install

после установки пакета

rails g rename:app_to name_of_app