Rails RESTful ActiveResource 先睹為快

在上一篇 Rails RESTful 相關工具 中有提到,ActiveReource 是一個針對 Rails RESTful APIs 所用的 client-side XML consumer,我們花了好幾篇學習為何 RESTful 跟如何用 map.resources 來架出 server-side provider,而具體的重大好處則會在 ARes 中體現出來,我們可以像對 ActiveRecord 的物件操作一樣來處理 ARes,只是它的內部運作對象變成 Resource 而不是 Database (你感覺不到你在用Web APIs :p)。

讓我們來試玩看看吧! 因為不只連 Rails 1.2 還沒 (最後關頭拉出 :p),連 Edge Rails 版都還沒有,所以必須直接用 svn co

svn co dev.rubyonrails.org/svn/rails/trunk vendor/rails

我們用 irb 來開始實驗吧~

$ irb
> require ‘vendor/rails/activesupport/lib/active_support’
> require ‘vendor/rails/activeresource/lib/active_resource’

上回也提到 beast 是個用 RESTful 開發的討論區軟體,所以我們用 beast 來做操作對象: 閱讀全文〈Rails RESTful ActiveResource 先睹為快〉

Rails RESTful 相關工具

Update(2008/5): 事隔一年多,我對於 RESTful Rails 有完全不同的切入點,詳見 Practical Rails2 投影片。本篇的 Resource Generator 和 simply_helper 皆已內建在 Rails2 中。

Rails RESTful  第四篇,我在這裡做些 Rails RESTful 工具介紹,相關文章有 REST tools for Rails 1.2

Resource Generator

Rails 的 Generator 是最立即的學習教材,因此 RESTful 版的 generator 也有了,除了產生 model, controller, views, tests 之外,連 migration 也會產生。

ruby script/generate scaffold_resource person name:string age:integer created_at:datetime birthday:date

閱讀全文〈Rails RESTful 相關工具〉

Rails 的 lost MySQL connection 問題

不知道從什麼時候開始(Rails 1.2?),我的 Rails 在跑 MySQL query 的時候,不定會出現 500 Internal Server Error,可是重新整理一次又可以用。看 log 檔也沒有紀錄。用 ruby script/server 直接觀察後發現 “Lost connection to MySQL server during query” 的錯誤訊息。

問了Google,發現要裝 gem install mysql。不過很奇怪都是說 Ubuntu 上要裝,在 FreeBSD 上都沒提到要裝?… anyway… 重開機之後就沒問題了。