[英]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中,以下文件中引用了應用程序名稱:
有一個Rails插件可以幫你完成。 超級方便。
在Rails 3中,應用程序類在config / application.rb中定義,並在您的環境文件(config / environment.rb,config / environments / * .rb)和config / routes.rb中引用。 我認為就是這樣,但如果錯過了一個,你應該很快從rails服務器中找到它。 :)
也就是說,除非你有一個非常具體的理由想要改變它,否則我不會打擾。 不會以任何其他方式影響應用程序。
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.