簡體   English   中英

如何更改Ruby on Rails應用程序名稱?

[英]How to change a Ruby on Rails application name?

我有一個Ruby on Rails應用程序,它是使用以下方法創建的:

rails new old_name -d mysql

現在我想將應用程序名稱更改為new_name

僅更改應用程序文件夾名稱是不夠的,因為例如,還必須更改數據庫名稱(從old_name_development更改為new_name_development )。 我想知道自動生成的文件中是否還有其他地方需要更改。

是否有用於更改應用程序名稱的內置命令?

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

  • 配置/ application.rb中
  • 到config / environment.rb
  • 配置/環境/ development.rb
  • 配置/環境/ production.rb
  • 配置/環境/ test.rb
  • 配置/初始化/ secret_token.rb
  • 配置/初始化/ session_store.rb
  • config / mongoid.yml(如果使用Mongoid)
  • 配置/ routes.rb中
  • config.ru
  • Rake文件
  • app / views / layouts / application.html.erb,標題標記

有一個Rails插件可以幫你完成。 超級方便。

https://github.com/get/rename

在Rails 3中,應用程序類在config / application.rb中定義,並在您的環境文件(config / environment.rb,config / environments / * .rb)和config / routes.rb中引用。 我認為就是這樣,但如果錯過了一個,你應該很快從rails服務器中找到它。 :)

  • 配置/ application.rb中
  • 配置/ enviroment.rb
  • 配置/環境/ *。RB
  • 配置/ routes.rb中

也就是說,除非你有一個非常具體的理由想要改變它,否則我不會打擾。 不會以任何其他方式影響應用程序。

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

運行以下命令從Rails(3.0.7)項目的根目錄替換new_name的old_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不應該被替換。

編輯:

當然,為此您需要安裝replace命令。

並且考慮到您的appname將是CamelCased,因此您可能需要嘗試一些不同的變體,例如OldName vs. NewName。

當您想要或不得不生成與應用程序名稱同名的模型或腳手架時,您可能會發現自己必須重命名該應用程序。 剛發生在我身上。 在Rails 3.2.13上使用https://github.com/morshedalam/rename ,到目前為止沒有問題。

為此,我使用了舊的shell命令:

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

此命令在找到old_name的所有文件中將old_name替換為new_name。 但是,它會創建一個擴展名為“.bak”的備份文件。 一旦檢查一切順利,可以輕松刪除這些文件。

這樣做的好處是它不是“軌道版本依賴”。

在軌道上4

gem 'rename'

到Gemfile然后做

bundle install

捆綁安裝后

rails g rename:app_to name_of_app

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM