How to rename rails 4 app?

2019-01-10 01:58发布

问题:

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.

回答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'


回答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



回答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


回答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


回答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 :)



回答6:

In Rails 4.2 just change in application config file

config/application.rb

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

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

then restart your server.

That's it!



回答7:

Here is a gem specifically for Rails 4 https://github.com/negativetwelve/rails-rename (I haven't used it but it seems fine)

The other gems listed here only target Rails 3



回答8:

In Rails 5.x, doing it manually

using ag (https://github.com/ggreer/the_silver_searcher), there are files that use the default folder name (if generated via rails new .)

three basic files, relative to root of project, need to be updated:

  • config/cable.yml > channel_prefix:
  • config/environments/production.rb > # config.active_job.queue_name_prefix
  • package.json > name

There are sure to be more locations as mentioned previously such as database etc. Hope this helps.



回答9:

For rails 5.2

Add gem 'rename' to the gemfile

bundle install

rails g rename:into your_new_app_name