Ruby 的繼承鍊 (1) - 如何實踐物件導向

先前看了 Metaprogramming Ruby 這本書,對於 Ruby 語言在實踐物件導向的方式有初步的了解,但整本書像是利用故事的方式來帶入觀念,難免不夠精練。直到最近看了泰安大大推薦我一部 Dave Thomas 在解釋 Ruby Object model 的 talk 之後,完全是貫穿了之前破碎和模糊的觀念,趁著忘記之前趕緊寫下這篇文章。 »

使用 Rails + Select 2 實作一個簡單的 tag 功能

在 Rails 中果要實作 tag 的功能,目前網路上找到比較常見的做法是使用 act as taggable on 這個 gem,不過這個 gem 似乎沒有維護的很好?於是參考了網路上的做法,自己在 Rail 上實作做了一個簡單的 tag 功能,本篇的範例實作以下項目: 每篇文章(post)可以加上多個標籤(tag) »

Metaprogramming Ruby (2) 動態方法

Dynamic Dispatch 一般呼叫方法的方式 obj.my_method(3) 這裡面 receiver 是指物件 obj,方法名稱是 my_method,可以改由 send 方法來呼叫。 obj.send(:my_method, 3) 這樣的好處是 method 的名稱可以作為一個參數傳遞。 attr »