Rails IDE 試用

源自 Eclipse IDE 的 radrails,比較老牌。跑在 JVM 上,可以跨 Windows, Mac OS X Universal, Linux 三個平台。功能看起來很多,看起來也蠻複雜的,開中文檔案變成亂碼,一時也沒找到可以調整的地方(偏好設定好多)。

rideme 

最近才出來的 RIDE-ME,跑在 .NET Framework 上,所以也只有 for Windows XP。功能比較陽春,但是看起來很簡潔,一下就上手了,中文檔案也沒問題。目前還是RC版,密切注意新版中。

only for Windows,開出來有點醜,中文也有問題,不喜歡。

參考資料 : IDE 整合開發工具

拍賣PHP書

說來真是慚愧,前一陣子想要好好學 PHP5,所以買了一堆(原文)書。不過遲遲沒有動力想念,公司的產品也是用PHP4而已,要升級到PHP5好像沒什麼特別值得又麻煩。

更重要的是,我找到讓我耳目一新的新學習目標了,那就是 Ruby 跟 Ruby on Rails 啦,目前也正在努力study中。所以那些PHP書我想還是出售給有緣人吧 :p 書都很新,只有翻過幾下而已,書價大概是天瓏的八折左右 (定價的6.4折~7.2折)。

檢視我的拍賣

YAML 簡介

Rails 的資料庫設定檔 database.yml 是用一種叫 YAML 的格式所撰寫,檔案打開來,看起來就像一般的 plain 設定檔,非常容易修改。

YAML 的設計首要目標就是要讓使用者容易看懂,可以和 script 語言搭配良好。用途有 資料序列化 data serialization、設定檔 configuration settings、log files、Internet messaging、filtering 等。網站上已知有支援的 script 語言有 Python,Ruby,Java,PHP,Perl,Javascript 等。

參考資料:

閱讀全文〈YAML 簡介〉

Rails 的 Many-to-Many 討論

Rails 的 ActiveRecord:Associations 讓你建立資料表之間的關係,其中一對一跟一對多關係都還算簡單,多對多比較複雜一點。Rails 有兩個方法可以做到,has_and_belongs_to_manyhas_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 即可。

Rails 的 Migrations

Migrations 讓你用 Ruby 語法來定義資料庫結構。這有什麼好處? 這可以讓資料庫結構也可以像 code 一樣做版本控制,多人開發時可以更容易更新資料庫版本,產品更容易升級,不同資料庫也更容易做同步。這些都只要打 rake migrate 就可以完成。

參考資料 :

簡易範例 : 閱讀全文〈Rails 的 Migrations〉

Rails Recipes 到手

花了近一個月的時候,把 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 上充充版面。