How to rename rails 4 app?

30,502

Solution 1

Since rails 4.1.x, if you want to rename your application, the only two files you need to modify are config/application.rb:

require File.expand_path('../boot', __FILE__)

require 'rails/all'

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module YourApplicationName # <-- rename it here
   class Application < Rails::Application
     ...
   end
end

and config/initializers/session_store.rb (optional):

# Be sure to restart your server when you modify this file.

Rails.application.config.session_store :cookie_store, key: '_your_application_name_session' # <-- rename the key

For Rails 4.0.x you can use the rename gem and execute the following command:

rails g rename:app_to New-Name

This will update the necessary files for you:

old/ (master)  › rails g rename:app_to new
Search and replace module in to...
    gsub  config.ru
    gsub  Gemfile
    gsub  Gemfile.lock
    gsub  Rakefile
    gsub  README.md
    gsub  config/application.rb
    gsub  config/boot.rb
    gsub  config/environment.rb
    gsub  config/environments/development.rb
    gsub  config/environments/production.rb
    gsub  config/environments/test.rb
    gsub  config/initializers/backtrace_silencers.rb
    gsub  config/initializers/filter_parameter_logging.rb
    gsub  config/initializers/inflections.rb
    gsub  config/initializers/load_class_extensions.rb
    gsub  config/initializers/mime_types.rb
    gsub  config/initializers/secret_token.rb
    gsub  config/initializers/session_store.rb
    gsub  config/initializers/update.rb
    gsub  config/initializers/wrap_parameters.rb
    gsub  config/routes.rb
    gsub  config/initializers/session_store.rb
Renaming references...
Renaming directory...Done!
New application path is '/Users/username/code/new'

Solution 2

Add

gem 'rename' to Gemfile

then

bundle install

After that

rails g rename:app_to name_of_app

And if you are using mongoid then you need to rename the database name in config/mongoid.yml

Solution 3

There are two ways:

1 . Manually (For Rails 4.1.x)

You need to manually find the references to the application name. And you need to change them manually. Here is some common places where it is used:

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/routes.rb
config.ru
    app/views/layouts/application.html.erb
Rakefile

2 . Automatic (For Rails 3 and 4.0.X)

Or you can use the rename gem and execute the following command:

rails g rename:app_to New-Name

Solution 4

For Rails 5

Require

  • config/application.rb change the module name

Optional

  • config/initializers/session_store.rb (in Rails.application.config.session_store) change the session name
  • app/views/layouts/application.html.erb You can change the <title>...</title>, if it is not already done

Solution 5

I just used this rename gem in a basic rails 4 app:

https://github.com/morshedalam/rename

This is quite a bit different to get's version.


Easy enough to use:

Add this to Gemfile:

gem 'rename'

And run:

rails g rename:app_to NewName

Seemed to the trick,
It also updated my rubymine .idea project settings :)

Share:
30,502
Arun Kumar Kandasamy
Author by

Arun Kumar Kandasamy

I head the technical Team in Code Rabbits Technologies - a Technology/online marketing forum based out of Chennai.

Updated on July 08, 2022

Comments

  • Arun Kumar Kandasamy
    Arun Kumar Kandasamy almost 2 years

    rails plugin install git://github.com/get/Rename.git will allow us to rename only rails 3 app

    Is there any gem available to rename Rails 4 app.

    If not, suggest me the better way to rename.