June 14,2007

使Rails的Libraries不依賴系統Libraries

embed the Rails Framework into your application

rails devrails

cd devrails

rake rails:freeze:edge

這個主要的目的是讓devrails使用自己vendor下的Rails,而不是用系統安裝的Rails。這其實是因為rails會先去找vendor底下的libraries,接著才是找系統的。它的做法是利用Subverison取得目前最新的Rails版本,然後再將它放到vendor底下,跑完之後,可以發現這個目錄底下多了一個rails。
devrails\vendor\rails

rake rails:freeze:edge REVISION=6100

這個是讓你可以指定任何一個版本的Rails,那我該去哪查版本呢,沒問題,馬上給你
this。進去之後看到Rev那個欄位的編號就是對應的REVISION版本,點一下框框中間右上角有個Revision log連結,進去就可以看到所有版本,以及一些重要的Log Message。

為什麼會講這個,是因為
1.邁向進階Rails之路
要更了解Rails看書是不夠的,我強烈的建議看了一些書的朋友,可以嘗試將soruce code下載回來看,會很有幫助。因為它當然是照它的元件去分,所以當你這樣反覆在裡面找資料的時候,會漸漸的將整個Framework深植腦中,不管Rails是好是壞,充分的了解它,才可以知道其長處與短處。接著它的註解說明寫的蠻棒的(雖然內容就跟官方網站的doc一樣)。舉個例子,login的Authentication我只記得書中提過before_filter,但我不知道怎麼詳細使用,我是不是每個都要加,我需要在子類別跳過這個filter,怎麼寫。
這時候就很好查,因為這是controller的功能,所以就先去controller的目錄
rails/actionpack/lib/action_controller/
裡面有個filters.rb,看起來像是我要的,點開來看,果然是,它的最前面的註解,就詳細的寫了每一種情況該怎麼用。這對已經稍微理解的人很有幫助,可以邁向熟練之路阿。

2.Deploy
當我整個應用程式寫完之後,Server是用付費的Host,想要用自己的Rail版本,而不用Server的Rails版本的時候。此時這個東西就很有幫助,當然還有一些Gem安裝到Project上的方法,請看How to host Ruby on Rails app on shared hosting這也是個很重要的一個議題,相關的還有Capistrano等等deploy的方法,從上篇可以清楚的知道deploy的一些概念。有時間我在整理出自己的一份note。


Posted by shinbang at 樂多Roodo! │13:30 │回應(2)引用(0)【Programming】
樂多分類:日記/一般 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/3467053
回應文章
多善用http://www.gotapi.com/rubyrails,一個一個開原始碼看會瘋掉的XD
Posted by Kiwi at June 14,2007 15:52
哈,也是。可能我在textmate下比較方便吧。跟看網頁差不多,如果一個一個開好像是真的會瘋掉。

gotAPI雖然之前有去看過,不過沒有習慣用來查,感覺還真的是不錯,好用多了。
Posted by kuni at June 14,2007 17:06