Comment changer un nom d’application Ruby on Rails?

J’ai une application Ruby on Rails créée avec:

rails new old_name -d mysql 

Maintenant, je veux changer le nom de l’application pour qu’elle soit new_name .

Il ne suffit pas de changer le nom du dossier de l’application, car le nom de la firebase database, par exemple, doit également être modifié (de old_name_development à new_name_development ). Je me demande s’il y a d’autres endroits dans les fichiers générés automatiquement qui doivent être modifiés.

Existe-t-il une commande intégrée pour modifier le nom de l’application?

Il y a un plugin Rails pour le faire pour vous. Super pratique

https://github.com/get/rename

Dans Rails 3, il existe des références au nom de l’application dans les fichiers suivants:

  • config / application.rb
  • config / environment.rb
  • config / environnements / development.rb
  • config / environnements / production.rb
  • config / environnements / test.rb
  • config / initializers / secret_token.rb
  • config / initializers / session_store.rb
  • config / mongoid.yml (si vous utilisez Mongoid)
  • config / routes.rb
  • config.ru
  • Rakefile
  • app / views / layouts / application.html.erb, dans la balise title

dans Rails 3, la classe d’application est définie dans config / application.rb et référencée dans vos fichiers d’environnement (config / environment.rb, config / environment / *. rb) et config / routes.rb. Je pense que ça y est, mais vous devriez vous renseigner assez rapidement sur le serveur de rails si vous en avez manqué un. 🙂

  • config / application.rb
  • config / enviroment.rb
  • config / environnements / *. rb
  • config / routes.rb

Cela dit, à moins que vous n’ayez une raison très précise de vouloir la modifier, je ne m’en soucierais pas. N’affecte pas vraiment l’application d’une autre manière.

L’application Rails 3 peut être renommée via https://github.com/morshedalam/rename

Exécutez ce qui suit pour remplacer le old_name for new_name de la racine de votre projet 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 

Mais assurez-vous de courir

 fgrep old_name . -iR 

Ou quelque chose de similaire en premier pour vérifier s’il n’y a pas d’occurrences de old_name dans votre projet qui ne devrait pas être remplacé.

MODIFIER:

Bien sûr, pour cela, vous devez avoir la commande replace installée.

Et tenez compte du fait que votre nom d’application sera CamelCased, alors vous devrez peut-être essayer différentes variantes, comme OldName vs NewName.

Vous devrez peut-être renommer l’application lorsque vous voulez ou devez générer un modèle ou une structure portant le même nom que le nom de l’application. C’est juste arrivé à moi. Utilisé https://github.com/morshedalam/rename sur Rails 3.2.13 et aucun problème à ce jour.

Pour ce faire, j’ai utilisé de bonnes vieilles commandes shell:

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

Cette commande remplace le old_name par new_name dans tous les fichiers qu’il trouve l’ancien_nom. Cependant, il crée un fichier de sauvegarde avec l’extension ‘.bak’. Ces fichiers peuvent être facilement supprimés une fois que vous vérifiez que tout s’est bien passé.

L’avantage de ceci est qu’il ne s’agit pas de “rails version dépendante”.

Sur rails 4

Ajouter

 gem 'rename' 

à Gemfile alors faire

 bundle install 

Après l’installation du bundle

 rails g rename:app_to name_of_app