我正在學習Ruby on Rails與AWDR書,並且必須具體說明我在本地計算機上運行的Rails和Ruby版本。我剛剛發現我需要從ruby 1.8.7回滾到ruby 1.8.6 here。我還需要回滾Rails以支持腳手架方法,以便我可以輕鬆啓動教程。管理許多不同版本的Ruby on Rails應用程序
我的問題是:當我開始簽約,在現實世界中開發和部署項目時,我將如何管理所有這些不同的版本?
在我看來,鐵路對傳統代碼的低容忍抵消了其易用性理念!但我相信我會越來越欣賞RoR。
我正在學習Ruby on Rails與AWDR書,並且必須具體說明我在本地計算機上運行的Rails和Ruby版本。我剛剛發現我需要從ruby 1.8.7回滾到ruby 1.8.6 here。我還需要回滾Rails以支持腳手架方法,以便我可以輕鬆啓動教程。管理許多不同版本的Ruby on Rails應用程序
我的問題是:當我開始簽約,在現實世界中開發和部署項目時,我將如何管理所有這些不同的版本?
在我看來,鐵路對傳統代碼的低容忍抵消了其易用性理念!但我相信我會越來越欣賞RoR。
RubyGems是Ruby的包管理器。您可以根據需要安裝儘可能多的寶石(軟件包)版本。您可以通過運行sudo gem install rails
來安裝最新版本(目前它將安裝2.3.5)。如果您需要2.2.2,請使用-v
或--version
選項指定:sudo gem install rails --version 2.2.2
。 Rails還安裝了一個二進制文件(是的,我知道它不是一個真正的二進制文件),它會生成一個項目。因爲你有幾個版本的寶石,你需要控制被調用的二進制文件。當您安裝rails gem時,RubyGems會將一個文件放在它的bin/
dir中,這是與實際的rails
二進制文件的「鏈接」。當你在命令行上說rails
時,這是你「呼叫」的那個人。但是,所有rubygems「鏈接」二進制文件都接受它自己的參數,這是您要使用的版本。你會使用2.2.2導軌二進制這樣的:
rails _2.2.2_ my_project
我覺得默認的是使用最新的版本,所以如果你想使用最新的版本,這樣做:
rails myproject
但是,我看到您使用2.2.2來訪問scaffold
方法。我強烈建議你不要使用該方法,但有理由將其刪除。 scaffold
方法隱藏代碼,並使定製變得困難。相反,使用腳手架發電機:
./script/generate scaffold --help
祝你未來的鐵軌冒險!
最新版本的Agile Web是爲2.2.2編寫的,我相信。對於這個基本的應用程序,他們引導你通過我非常確定它應該與2.3.x工作
你如何跟上問題的答案是,你需要更新你的應用程序,並閱讀API和Changleogs找到了解已更改的內容並修復升級失敗的內容。一個很好的方式來幫助這個有一個好的測試套件,測試覆蓋面很好。
至於Rails中,你可以做的是凍結您的版本,例如:
gem install rails
V = 2.2.2rake rails:freeze:edge RELEASE=2.2.2
現在你會發現包裝項目的供應商文件夾內Rails的,所以你不必在部署機器上安裝Rails:與項目本身
對於Ruby,我喜歡Ruby Version Manager(RVM),這是管理Ruby版本的最簡單方法。
是的,我看到腳手架已折舊。它在AWDR書中。一旦我閱讀本書,我將從我的技能組中刪除它:) 謝謝! – Rimian 2010-01-24 04:10:02