Как изменить имя приложения Ruby on Rails? - PullRequest
55 голосов
/ 08 декабря 2010

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

rails new old_name -d mysql

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

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

Существует ли какая-либо встроенная команда для изменения имени приложения?

Ответы [ 8 ]

70 голосов
/ 27 декабря 2010

В 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
32 голосов
/ 25 апреля 2012

Есть плагин Rails, который сделает это за вас.Супер удобно.

https://github.com/get/rename

9 голосов
/ 08 декабря 2010

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

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

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

3 голосов
/ 11 января 2013

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

1 голос
/ 18 мая 2011

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

РЕДАКТИРОВАТЬ:

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

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

0 голосов
/ 10 ноября 2015

На рельсах 4

Добавьте

gem 'rename'

в Gemfile, затем выполните

bundle install

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

rails g rename:app_to name_of_app
0 голосов
/ 15 августа 2014

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

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

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

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

0 голосов
/ 27 мая 2013

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

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