如何重命名rails 4 app?

Aru*_*amy 62 ruby-on-rails-3 ruby-on-rails-4

rails plugin install git://github.com/get/Rename.git 将允许我们只重命名rails 3应用程序

是否有任何宝石可用于重命名Rails 4应用程序.

如果没有,建议我更好的重命名方式.

Dan*_*iel 134

从rails 4.1.x开始,如果要重命名应用程序,则只需要修改的两个文件是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
Run Code Online (Sandbox Code Playgroud)

config/initializers/session_store.rb(可选):

# 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
Run Code Online (Sandbox Code Playgroud)

对于Rails 4.0.x,您可以使用renamegem并执行以下命令:

rails g rename:app_to New-Name
Run Code Online (Sandbox Code Playgroud)

这将为您更新必要的文件:

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'
Run Code Online (Sandbox Code Playgroud)

  • 您可能也想在`config/database.yml`中重命名数据库. (3认同)
  • 如果您按照@ yenshirak的建议重命名数据库,请注意,更改`database.yml`中的名称只会更改它查找数据库的位置,它实际上不会重命名数据库本身.如果更改指定的位置,则还需要使用`pgadmin`或`psql`等工具重命名数据库.国际海事组织,最简单的做法是保持不变. (2认同)

小智 37

gem 'rename' 到Gemfile

然后

bundle install

之后

rails g rename:app_to name_of_app
Run Code Online (Sandbox Code Playgroud)

如果您使用mongoid,则需要重命名数据库名称 config/mongoid.yml

  • 目前接受的答案与2014年首次发布的答案几乎相同:@complistic (5认同)

Har*_*dik 29

有两种方法:

1.手动(适用于Rails 4.1.x)

您需要手动查找对应用程序名称的引用.您需要手动更改它们.以下是一些常用的地方:

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
Run Code Online (Sandbox Code Playgroud)

2.自动(适用于Rails 3和4.0.X)

或者您可以使用rename gem并执行以下命令:

rails g rename:app_to New-Name
Run Code Online (Sandbox Code Playgroud)


Fab*_* Sa 22

对于Rails 5

要求

  • config/application.rb 更改模块名称

可选的

  • config/initializers/session_store.rb (在Rails.application.config.session_store中)更改会话名称
  • app/views/layouts/application.html.erb<title>...</title>如果尚未完成,您可以更改


com*_*tic 16

我刚刚rename在基本的rails 4 app中使用了这个gem:

https://github.com/morshedalam/rename

get与版本有点不同.


易于使用:

将其添加到Gemfile:

gem 'rename'
Run Code Online (Sandbox Code Playgroud)

并运行:

rails g rename:app_to NewName
Run Code Online (Sandbox Code Playgroud)


看似诀窍,它还更新了我的rubymine .idea项目设置:)


Man*_*ava 9

Rails 4.2中只需更改application config文件即可

config/application.rb
Run Code Online (Sandbox Code Playgroud)

和config/initializers/session_store.rb(可选):

Rails.application.config.session_store :cookie_store, key: '_your_application_name_session' # <-- rename the key
Run Code Online (Sandbox Code Playgroud)

然后重启你的服务器.

而已!