目前使用 rails 的網站,version 分成好幾派。
rails 0.x 的就是幾年前就開始在使用 rails 的始祖,據我所知國內也是有網站還再用 0.x ,他們之所以死撐不換的原因只有乙個,就是怕公升級上去原本的 code 根本不相容。1.0 的時候我沒趕上,那可能要問一些長輩才知道 1.0 的模樣是怎麼樣子。
我進入 rails 圈子剛好是 1.1 的剛剛出的時代,那時候 rjs 剛剛出來,大家叫好又叫座。我也因此全新投入了 rails,1.1 的穩定度很高,速度也不賴。 rails .12 是今年才出的,rest 加上 has_many :through 實在非常的吸引人,不過有 benchmark 表示 rails 1.2 在速度上輸給 rails 1.1,不過也沒輸太多。所以綜觀起來,要使用 rails 1.1 或是 1.2 是要看你的需求而定的,沒有一定要使用那個版本的建議。
我現在手邊的 project 都是用 1.1 ,而且絕大多數已經上線在跑的,短期間不太可能轉換到 1.2 。但是我一定會花很多時間在了解 1.2 的情況。也就是說,我希望能夠在我的機器上面裝 1.1 跟 1.2,有沒有辦法達成呢?
首先,你的 gem 已經安裝了你所要求的 rails version,像是我希望在我的機器上面可以自由使用 1.1 或是 1.2 的 rails,所以我的 gem 安裝情況就是
rails ()and orm.
問題來了,要怎麼一次安裝兩個以上的 version 呢?假設你的 rails 已經安裝了 1.1.6 ,可是又要安裝 1.2.3 ,就這樣打吧。
sudo gem install -v=1.2.3 rails當然,如果你想安裝的是最新的 rails release,那麼這樣也是可以的
sudo gem i rails如此就可以在同一臺機器上面安裝不同 version 的 rails 。
確定了你的 gem 已經安裝了多個 version,我們必須了較 freeze code 的概念,很多時候我們的某個 project 的 code 是在某個版本的 rails 開發的。當rails 出了新的 release,原本run 好好的 code 就可能出現一堆 error,所以我們必須要在這個 project 也包入 rails 這個 version 的 code。使用方式如下
rake rails:freeze:edge tag=rel_1-1-6顧名思義,你可以再 tag 下面指定你要的 rails version,這個指令會把 rails 放入 vender/rails/ 底下,以後伺服器執行前,他都會去這個資料夾尋找,如果有 vender/rails/ 的資料夾,他就不會使用系統預設的 rails version ,而是使用已經包在這個 rails 資料夾的 version。rake rails:freeze:edge tag=rel_1-2-3
當然,如果我們將已經包好的 rails version 解除,重新使用系統預設的 rails version,就這樣打即可
rake rails:unfreeze他做的事情其實就只是 rm -fr vender/rails/ 資料夾而已。
最後一點,如果你不確定你的 rails package 到底使用那個 version 的 rails ,你可以打入
ruby script/about
他會跟你講的一清二楚的。
徹底搞清楚SSL TLS
ssl secure sockets layer 最初由netscape定義,分別有sslv2和sslv3兩個版本 sslv1未曾對外發布 在sslv3之後ssl重新命名為tls。tls transport layer security 版本從tlsv1.0開始,tlsv1.0是在sslv3的基礎上...
搞清楚LzoCodec和LzopCodec
使用lzo過程會發現它有兩種壓縮編碼可以使用,即lzocodec和lzopcodec,下面說說它們區別 lzocodec比lzopcodec更快,lzopcodec為了相容lzop程式新增了如bytes signature,header等資訊 如果使用 lzocodec作為reduce輸出,則輸出擴...
搞清楚陣列和指標
首先來看看幾個例子 int p a 指標陣列 int p b 陣列指標 int function int a 指標函式 int p int a 函式指標 int p a int a 函式指標陣列 在敘述陣列和指標的關係之前,先琢磨一下上面的五行 看你是否能一眼就看出來它們的確切含義。首先很關鍵的一點...