Rails RESTful 實作

Update(2006/12/4): 一些小修改跟 link_to 的 web accessibility 補充。

Update(2006/12/11): 請接著看系列文章下一集: Rails RESTful 相關工具

Rails RESTful 彈第三篇,我想 David Heinemeier Hansson 的這篇投影片是很好的開場白:  Discovering a world of Resources on Rails

本來這篇想寫的仔細點,不過後來我發現AWDwR第二版講 Resource-Based Routing 的頁數還不少(十幾頁吧,還蠻詳細的),要用 Rails 的人應該都去買一本,我想我這裡就不巨細靡遺了… :p

在 Rails 中是如何實作 RESTful 支援的? 首先是在 Resource Routes 上,在 routes.rb 加入

map.resources :users

這樣的宣告將在自動對應 URL路徑跟 Controller 的 action ,而有以下的結果 :

GET: /users => [:action => ‘index’]
GET: /users.xml => [:action => ‘index’, :format => ‘xml’]
GET: /users/1 => [:action => ‘show’, :id => 1]
GET: /users/1;edit => [:action => ‘edit’, :id => 1]
GET: /users/1.xml => [:action => ‘show’, :id => 1, :format => ‘xml’]
POST: /users => [:action => ‘create’]
PUT: /users/1 => [:action => ‘update’, :id => 1]
DELETE: /users/1 => [:action => ‘destroy’, :id => 1]

也就是使用 named routes 來實作出 verb-oriented controllers,單一個 resource 根據 HTTP verb 而有不同的行為。 閱讀全文〈Rails RESTful 實作〉

品書.書品

還蠻不錯的一本愛書人小書,語調輕鬆(比起如何閱讀一本書簡單多了,當然份量也不同啦~),提供一些閱讀的觀念跟技巧等等。有些跟我本來的觀念一樣,像是有系統整理書單買書。有些我則做的不好,像我還蠻有剩菜症候群的,一但開始唸一本書就算很痛苦也盡量要念完… :p

書分五章:

如何找書

整理自己想唸的書單(List of Candidates),寫下推薦念這本書的各種來源管道。整理自己的閱讀史。當你建立書單的同時,除了是寫下了興趣所在,也是設定了你的人生目標,你的每個目標都將透過閱讀的力量去達成。

別強迫自己去讀你不喜歡的書,這世上有成千上萬的好書,何必傻得把時間浪費在無法讓你愉快又受益的書上。很多人會覺得一旦開始讀一本書之後,就必須得要讀完,這種觀念就像不想浪費食物而吃光剩菜的心態,要學會放棄。要使自己精於閱讀,你必須挑選大量的入圍好書並抽樣試閱。

讀經典文學不怕晚: 隨著年紀與歷練成長,讀文學名著所吸收的養分會比年輕時加倍豐沛。

計畫性的閱讀才能提升知識品質: 只有當你藉由主動積極地尋找好書,考量更廣泛的閱讀領域,加上用心地精挑細選,使你涉獵的書籍大半都是有計畫性的閱讀,這樣你所獲得的知識品質才會提升,而且是大幅提升。 閱讀全文〈品書.書品〉

RESTful Design 雜談

看了上一篇可能會有些混淆: 整個 Wide World Web 可以概觀看成 REST 架構,但是微觀看 Web 就不完全是了。來看看 Rails 的 URL routes 設計: 指定Controller之後指定action,基本上它是個程序性(procedural)的框架,我們利用URI syntax來決定執行什麼動作。然而 Web 基本上不是個 procedural 環境,而是 RESTful 的,但是就像你在物件導向的環境中仍然可以寫 procedural code,你也可以在 RESTful 環境中作 procedural,只是很不幸的會失去一些RESTful的優點而已。

不過這不表示Rails不夠好,事實上目前任何 web application 框架要成功,都必須支援 procedural 的開發,這是因為基本上目前存在的主流框架都是 procedural 的,人們也都習慣於procedural開發。目前的潮流只有在部分需要做 web service 的地方,會在SOAP之外另外提供REST方法(提供XML格式),在整個網站上使用RESTful仍不多見。因此除非看到有人率先做出成功的RESTful 網站吧,雖說 RESTful is right way,但是它的觀念與大家已經會的 procedural 有著根本上的差異,所以這種改變跟限制到底能提供多少實際好處呢? anyway… 走在時代尖端的 Ruby on Rails 註定會走這對的一步 (事實上是併行: 你可以用本來的方法設計,也可以用RESTful方式)。  閱讀全文〈RESTful Design 雜談〉

EQ 十週年紀念版

十年的經典書籍了,1996年初版時我還在唸國二吧,那時候似乎非常暢銷轟動,不過以我那時候的年紀,印象中在書店看到覺得太深奧看不太懂很無趣呢。

今年時報出版重新換封面出了十週年紀念版(新封面比較好看有質感),我在學校的書店看到這本書就買下來了。對於EQ,大概的概念想必大家都知道了,這本書用了非常多的實驗結果來論述EQ的本質跟影響,包括神經科學、心理學、演化論等,理性與感性同樣重要,EQ情緒跟我們的生理機制十分密切,互相影響。其中讓我聯想到之前念過的神經外科的黑色喜劇中的第一條規則 : 當你的腦袋被打開,跟空氣接觸之後,你就再也不是從前的你了。這本EQ就有些例子就是開過腦之後因為傷害到腦的某些神經,手術後性情大變….:p

這一陣子的暢銷書先別急著吃棉花糖的實驗也在這本書提到了,小時候如果能克制先拿棉花糖,長大後有比較好的表現。這是因為抗拒衝動是各種情感自制力的根源,自我調節情緒的根本意義在於克制衝動以達成某種目標。

這本書也提出很多方法增進EQ能力及如何處理負面情緒(憤怒/焦慮/沮喪),除了可以好好了解EQ之外,對於各種日常生活、男女關係、婚姻、親子關係、教育、工作、健康等都非常有幫助的一本書。

Agile Web Development with Rails 第二版預告

 

Ruby on Rails 最重要的一本書 Agile Web Development with Rails, 2nd Edition 終於定稿送印了,即將在 12/15 上市,如果等不及也可以線上買PDF。這是個偉大的時刻搭配 Rails 1.2 的發布,它將涵蓋 RJS, migrations, resources, multi-format actions with respond_to, polymorphic associations 跟其他最新的功能。

想像一下這本書有多麼不容易,作者群除了撰寫 Rails 核心程式碼,還要分神寫書。Rails 1.2 RC才剛出來不久,等到你拿到這本書的同時,final release of 1.2 才正要熱騰騰發行呢~… :)

資料來源: Riding Rails 跟 DHH 部落格