說來真是慚愧,前一陣子想要好好學 PHP5,所以買了一堆(原文)書。不過遲遲沒有動力想念,公司的產品也是用PHP4而已,要升級到PHP5好像沒什麼特別值得又麻煩。
更重要的是,我找到讓我耳目一新的新學習目標了,那就是 Ruby 跟 Ruby on Rails 啦,目前也正在努力study中。所以那些PHP書我想還是出售給有緣人吧 :p 書都很新,只有翻過幾下而已,書價大概是天瓏的八折左右 (定價的6.4折~7.2折)。
😆 👨🏻💻 ✨ 🚀 💰
Rails 的資料庫設定檔 database.yml 是用一種叫 YAML 的格式所撰寫,檔案打開來,看起來就像一般的 plain 設定檔,非常容易修改。
YAML 的設計首要目標就是要讓使用者容易看懂,可以和 script 語言搭配良好。用途有 資料序列化 data serialization、設定檔 configuration settings、log files、Internet messaging、filtering 等。網站上已知有支援的 script 語言有 Python,Ruby,Java,PHP,Perl,Javascript 等。
參考資料:
Rails 的 ActiveRecord:Associations 讓你建立資料表之間的關係,其中一對一跟一對多關係都還算簡單,多對多比較複雜一點。Rails 有兩個方法可以做到,has_and_belongs_to_many 跟 has_many :through。後者是 Rails 1.1 才有的,所以 Agile Web Development with Rails 一書並沒有提到。
我的頭一個問題是,這兩個有什麼差別,應該用哪一個?? 找了一下有發現有 habtm vs has_many :through 這篇跟 Many-to-many Dance-off!。Dance-Off 那篇很仔細的比較兩者的差異,也給了一個範例,值得一看。
主要來說 has_and_belongs_to_many 比較簡單,但是那個 join table 不適合再加欄位值,比如說該關聯建立的時間之類的,雖然 push_with_attributes 這個方法可以塞資料進去,但是卻是很亂的糟方式,已經不被推薦使用。
而 has_many :through 功夫多一些,結構更完整,用新增一個 join model 的方式來建立關聯資料。自己有一個 model class,因此使用上也比較豐富。就像一般 model 一樣,先 new 一個出來,assign 好那兩個關聯物件,再填好其它資料,最後 save 即可。
Migrations 讓你用 Ruby 語法來定義資料庫結構。這有什麼好處? 這可以讓資料庫結構也可以像 code 一樣做版本控制,多人開發時可以更容易更新資料庫版本,產品更容易升級,不同資料庫也更容易做同步。這些都只要打 rake migrate 就可以完成。
參考資料 :
簡易範例 : 閱讀全文〈Rails 的 Migrations〉
花了近一個月的時候,把 Agile Web Development with Rails 一書看完,接著天瓏就進了這本書 Rails Recipes。剛好可以接著看,呵。這本真是 Rails 那本的絕配,因為Rails那本的實例較少,很多東西還是不知道怎麼弄出來。Rails Recipes 列了70個問題來一一解答,是本實用的食譜書。
題外話,Agile Web Development with Rails 十月要出第二版了,真是期待。新書應該是要追上1.1的腳步,看起來 Rails 1.1 修改了不少,像是 DB migration、Many-to-Many 的 has_many :through、Polymorphic associations 等,還有 RJS Templates,每個功能都快讓我流口水了說。
這下半年會好好研究 Ruby on Rails 跟 Ruby,and 寫點東西在 Blog 上充充版面。
第三章 出去旅行
第四章 休閒時間的IT活用術
第五章 喝酒的場所與樂趣
第六章 家庭管理術、第七章 恍然大悟的育兒術、第八章 從現在起,為年老的生活做準備。最後這三章也有不少不錯的建議,不過暫時我還用不到囉,以後結婚有小孩了,值得再看。