How to change a Ruby on Rails application name?

Ruby on-RailsRuby on-Rails-3

Ruby on-Rails Problem Overview


I have a Ruby on Rails application that was created using:

rails new old_name -d mysql

Now I want to change the application name to be new_name.

Just changing the application folder name will not be enough, because the database name, for example, also has to be changed (from old_name_development to new_name_development). I wonder if there are other places in the automatically generated files that needs changing.

Is there any built in command for changing the application name ?

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

In Rails 3, there are references to the application name in the following files:

  • config/application.rb
  • config/environment.rb
  • config/environments/development.rb
  • config/environments/production.rb
  • config/environments/test.rb
  • config/initializers/secret_token.rb
  • config/initializers/session_store.rb
  • config/mongoid.yml (if using Mongoid)
  • config/routes.rb
  • config.ru
  • Rakefile
  • app/views/layouts/application.html.erb, in title tag

Solution 2 - Ruby on-Rails

There's a Rails plugin to do it for you. Super convenient.

https://github.com/get/rename

Solution 3 - Ruby on-Rails

in Rails 3, the application class is defined in config/application.rb, and referred to in your environment files (config/environment.rb, config/environments/*.rb) and config/routes.rb. I think that's it, but you should find out pretty quickly from rails server if you missed one. :)

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

That said, unless you've got a very specific reason for wanting it changed, I wouldn't bother. Doesn't really affect the application in any other way.

Solution 4 - Ruby on-Rails

Rails 3 application can rename using https://github.com/morshedalam/rename

Solution 5 - Ruby on-Rails

Run the following to replace the old_name for new_name from the root of your Rails (3.0.7) project.

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

But be sure to run

fgrep old_name . -iR

Or something similar first to check if there are no occurrences of old_name in your project who not should be replaced.

EDIT:

Of course for this you need to have the replace command installed.

And take in account that your appname will be CamelCased, so maybe you have to try a few different variations, like OldName vs. NewName.

Solution 6 - Ruby on-Rails

On rails 4

Add

gem 'rename'

to Gemfile then do

bundle install

After bundle install

rails g rename:app_to name_of_app

Solution 7 - Ruby on-Rails

You might find yourself having to rename the app when wanting or having to generate a model or scaffold with the same name as the app's name. Just happened to me. Used https://github.com/morshedalam/rename on Rails 3.2.13 and no problems so far.

Solution 8 - Ruby on-Rails

To do this, I have used good old shell commands :

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

This command replace the old_name with new_name in all file it finds the old_name. However, it creates a backup file with the extension '.bak'. Those file can be easily removed once you check everything went well.

The advantage of this, is that it is not 'rails version dependent'.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMisha MoroshkoView Question on Stackoverflow
Solution 1 - Ruby on-RailsChris AlleyView Answer on Stackoverflow
Solution 2 - Ruby on-RailsCoffee BiteView Answer on Stackoverflow
Solution 3 - Ruby on-RailsKeith GaddisView Answer on Stackoverflow
Solution 4 - Ruby on-Railsuser1193139View Answer on Stackoverflow
Solution 5 - Ruby on-RailsKoen.View Answer on Stackoverflow
Solution 6 - Ruby on-RailshopperView Answer on Stackoverflow
Solution 7 - Ruby on-RailsoctimizerView Answer on Stackoverflow
Solution 8 - Ruby on-RailsRaphael PrView Answer on Stackoverflow