如何重命名Rails 5应用程序?

32

使用rename gem来重命名Rails 5应用程序是否是最佳方式?

另外,在重命名应用程序时我需要注意什么?


2
这个问题之前已经被问过多次了。请查看https://dev59.com/d2Ei5IYBdhLWcg3wwecN - Kevin Etore
1
谢谢。那么4.1.x的解决方案和Rails 5是一样的吗? - user6427415
我不确定,但是在我提供的链接中有一个专门针对Rails 5的部分。 - Kevin Etore
4个回答

33

重命名Rails 5应用程序更加容易!

打开Rails项目中的config/application.rb文件,你会看到一个与你的应用程序同名的模块。你只需要将该模块的名称更改为你想要的应用程序名称即可。

除此之外,还有一些对旧应用程序名称的引用,但不需要更改。例如,在config/initializers/session_store.rb中,会话cookie名称仍然使用旧的应用程序名称。但是你的IDE /编辑器中的“查找所有”功能可能会帮助你处理这些引用。


12

以下方法适用于我:

  1. gem "rename"添加到您的Gemfile中
  2. bundle
  3. rails g rename:into NEW_NAME

请注意,这将创建一个新文件夹以及新应用程序名称,并将所有文件移动到新文件夹并删除旧应用程序。 如果需要,请备份。被修改的文件包括:

gsub  Gemfile.lock
gsub  Gemfile
gsub  config.ru
gsub  README.md
gsub  package.json
gsub  Rakefile
gsub  config/puma.rb
gsub  config/environments/production.rb
gsub  config/environments/test.rb
gsub  config/environments/development.rb
gsub  config/routes.rb
gsub  config/initializers/assets.rb
gsub  config/initializers/cookies_serializer.rb
gsub  config/initializers/content_security_policy.rb
gsub  config/initializers/application_controller_renderer.rb
gsub  config/initializers/wrap_parameters.rb
gsub  config/initializers/mime_types.rb
gsub  config/initializers/backtrace_silencers.rb
gsub  config/initializers/filter_parameter_logging.rb
gsub  config/initializers/inflections.rb
gsub  config/application.rb
gsub  config/spring.rb
gsub  config/boot.rb
gsub  config/environment.rb
gsub  config/initializers/session_store.rb

更多信息请点击这里:http://www.adamscott.io/blog/2014/01/21/renaming-a-ruby-on-rails-application


5

使用最受欢迎的文本编辑器和IDE,您可以在所有项目文件中搜索字符串。如果您正在使用Sublime Text,则可以使用键盘快捷键Ctrl++F或使用查找 > 在文件中查找,如此处所述。

请记住,您的应用程序名称可能以以下格式出现:

  • MyAppName(在application.rb中)
  • my-app-name
  • my_app_name
  • My App Name(在布局中)

在我的情况下,对于一个Rails 5.1.6应用程序,我需要编辑以下文件:

  • config/application.rb
  • config/cable.yml
  • config/database.yml(如果您想更改数据库名称)
  • config/environments/production.rb
  • app/views/layouts/application.html.erb
  • package.json
  • app/mailers/*(更改电子邮件from地址)
  • config/initializers/devise.rb(config.mailer_sender

文本编辑器没有“项目文件”的概念。 - barlop
1
这可以使用正则表达式更好地工作。假设您的项目名称为Test Web,按下Ctrl + Shift + F,打开正则表达式,关闭区分大小写,在查找字段中输入:test(-|_| |)web,在位置字段中输入:**-tmp/,-log/,然后按下查找**按钮。最后一个是排除tmp/和log/文件夹。 - Andrek

4

“查找和替换”方法存在风险,因为它可能会破坏URL或路由。

相反,在您的Gemfile中添加gem 'rename',然后运行bundle install

然后简单地执行以下操作:

rails g rename:into your_new_app_name


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接