Ответ 1
Там есть плагин Rails для этого. Супер удобно.
У меня есть приложение Ruby on Rails, которое было создано с помощью:
rails new old_name -d mysql
Теперь я хочу изменить имя приложения как new_name
.
Просто изменить имя папки приложения будет недостаточно, потому что имя базы данных, например, также должно быть изменено (от old_name_development
до new_name_development
). Интересно, есть ли другие места в автоматически сгенерированных файлах, которые необходимо изменить.
Есть ли встроенная команда для изменения имени приложения?
Там есть плагин Rails для этого. Супер удобно.
В Rails 3 есть ссылки на имя приложения в следующих файлах:
в Rails 3 класс приложения определен в config/application.rb и указан в файлах среды (config/environment.rb, config/environment/*. rb) и config/routes.rb. Я думаю, что это, но вы должны быстро узнать из сервера rails, если вы его пропустили.:)
Тем не менее, если у вас нет особых причин, чтобы он менялся, я бы не стал беспокоиться. На самом деле это не влияет на приложение другим способом.
Приложение 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 в Rails 3.2.13 и никаких проблем до сих пор.
Для этого я использовал старые старые команды оболочки:
grep -r old_name * | cut -d: -f1 | xargs sed -i .bak 's/old_name/new_name/g'
Эта команда заменяет old_name новым_имя во всем файле, где он находит old_name. Однако он создает резервный файл с расширением ".bak". Этот файл можно легко удалить после проверки, что все прошло хорошо.
Преимущество этого заключается в том, что он не зависит от версии rails.
На рельсах 4
Добавить
gem 'rename'
в Gemfile, тогда выполните
bundle install
После установки пакета
rails g rename:app_to name_of_app