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

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

rails new old_name -d mysql

Теперь я хочу изменить имя приложения как new_name.

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

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

Ответ 2

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

  • конфиг /application.rb
  • конфиг /environment.rb
  • конфигурации/среда/development.rb
  • конфигурации/среда/production.rb
  • конфигурации/среда/test.rb
  • конфиг/Инициализаторы/secret_token.rb
  • конфиг/Инициализаторы/session_store.rb
  • config/mongoid.yml(при использовании Mongoid)
  • конфиг /routes.rb
  • config.ru
  • Rakefile
  • app/views/layouts/application.html.erb, в теге title

Ответ 3

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

  • конфиг /application.rb
  • конфиг /enviroment.rb
  • конфигурации/среда/*. Гь
  • конфиг /routes.rb

Тем не менее, если у вас нет особых причин, чтобы он менялся, я бы не стал беспокоиться. На самом деле это не влияет на приложение другим способом.

Ответ 5

Выполните следующее, чтобы заменить 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.

Ответ 6

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

Ответ 7

Для этого я использовал старые старые команды оболочки:

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

Эта команда заменяет old_name новым_имя во всем файле, где он находит old_name. Однако он создает резервный файл с расширением ".bak". Этот файл можно легко удалить после проверки, что все прошло хорошо.

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

Ответ 8

На рельсах 4

Добавить

gem 'rename'

в Gemfile, тогда выполните

bundle install

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

rails g rename:app_to name_of_app