2008年7月29日 星期二

alias_method_chain, alias_method

http://hooney.javaeye.com/blog/210244

alias_method_chain
想要改變原來function的method 內容, 又想要保留原來的method內容
可以用

alias_method :old_a, :a
alias_method :a, :modified_a

這樣就是改 modified_a, 叫a 就會變了
這樣不用動a的內容, 想要叫之前的a 就是叫old_a

可是這樣太麻煩 可以直接用 alias_method_chain 會幫妳自動產生些function

alias_method_chain :foo, :feature
替我們定義了兩個方法:foo_with_feature 和 foo_without_feature <保存原來的foo方法>

def foo_with_feature
在此添加想向foo方法裡面寫的代碼
foo_without_feature 調用一下原來的方法
end

沒有留言: