搞清楚你的 Rails Version

2021-08-22 07:54:26 字數 1754 閱讀 1730

目前使用 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

rake rails:freeze:edge tag=rel_1-2-3

顧名思義,你可以再 tag 下面指定你要的 rails version,這個指令會把 rails 放入 vender/rails/ 底下,以後伺服器執行前,他都會去這個資料夾尋找,如果有 vender/rails/ 的資料夾,他就不會使用系統預設的 rails version ,而是使用已經包在這個 rails 資料夾的 version。

當然,如果我們將已經包好的 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 函式指標陣列 在敘述陣列和指標的關係之前,先琢磨一下上面的五行 看你是否能一眼就看出來它們的確切含義。首先很關鍵的一點...