【问题标题】:How to change a Ruby on Rails application name?如何更改 Ruby on Rails 应用程序名称?
【发布时间】:2011-05-21 23:38:45
【问题描述】:

我有一个使用以下方法创建的 Ruby on Rails 应用程序:

rails new old_name -d mysql

现在我想将应用程序名称更改为new_name

仅更改应用程序文件夹名称是不够的,因为例如数据库名称也必须更改(从old_name_developmentnew_name_development)。不知道自动生成的文件中是否还有其他地方需要更改。

是否有任何用于更改应用程序名称的内置命令?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    在铁轨上 4

    添加

    gem 'rename'
    

    到 Gemfile 然后做

    bundle install
    

    捆绑安装后

    rails g rename:app_to name_of_app
    

    【讨论】:

      【解决方案2】:

      为此,我使用了很好的旧 shell 命令:

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

      此命令在找到旧名称的所有文件中将旧名称替换为新名称。但是,它会创建一个扩展名为“.bak”的备份文件。一旦检查一切顺利,这些文件就可以轻松删除。

      这样做的好处是它不依赖于“rails 版本”。

      【讨论】:

        【解决方案3】:

        当您想要或必须生成与应用名称相同名称的模型或脚手架时,您可能会发现自己不得不重命名应用。刚刚发生在我身上。在 Rails 3.2.13 上使用 https://github.com/morshedalam/rename,到目前为止没有问题。

        【讨论】:

          【解决方案4】:

          Rails 3 应用程序可以使用 https://github.com/morshedalam/rename 重命名

          【讨论】:

            【解决方案5】:

            在 Rails 3 中,应用程序类在 config/application.rb 中定义,并在您的环境文件(config/environment.rb、config/environments/*.rb)和 config/routes.rb 中引用。我想就是这样,但如果你错过了一个,你应该很快从 Rails 服务器上找到。 :)

            • config/application.rb
            • 配置/环境.rb
            • config/environments/*.rb
            • config/routes.rb

            也就是说,除非您有非常具体的理由想要更改它,否则我不会打扰。不会以任何其他方式真正影响应用程序。

            【讨论】:

            • 这个名字太不相关了,我不能忍受它:) 谢谢你的回答。我想我会做某种grep 来找出所有事件。
            • 我还在/config/routes.rb/Rakefile/config.ru 中找到了它。您的里程可能会有所不同。
            • 我也在initializers/secret_token.rbinitializers/session_store.rb找到了。
            【解决方案6】:

            有一个 Rails 插件可以帮您完成。超级方便。

            https://github.com/get/rename

            【讨论】:

            • 我刚用过它,它运行良好,我希望他们能继续使用 Rails 4,它不支持vendor/plugins
            【解决方案7】:

            在 Rails 3 中,以下文件中引用了应用程序名称:

            • 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(如果使用 Mongoid)
            • config/routes.rb
            • config.ru
            • 耙文件
            • app/views/layouts/application.html.erb,在标题标签中

            【讨论】:

            • 它也会在app/views/layouts/application.html.erb,在<title>里面
            • 我已经确认,这个列表对于 Rails 4 beta 1 也是准确的
            【解决方案8】:

            运行以下命令,从 Rails (3.0.7) 项目的根目录中将 old_name 替换为 new_name。

            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
            

            但一定要跑

            fgrep old_name . -iR
            

            或类似的东西首先检查您的项目中是否没有出现不应替换的 old_name。

            编辑:

            当然,为此您需要安装替换命令。

            并考虑到您的应用名称将采用驼峰式命名,因此您可能需要尝试一些不同的变体,例如 OldName 与 NewName。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2015-12-20
              • 2012-12-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-11-30
              • 2010-12-01
              • 1970-01-01
              相关资源
              最近更新 更多