2012-06-26 83 views
0

我需要ActiveRecord :: AttributeAssignment.assign_attributes(new_attributes,options)的不同行爲。Ruby:如何攔截方法,擺弄args然後調用方法

對於我的整個Web應用程序,我想評估[並經常覆蓋] new_attributes。 (我想這樣做來支持不遵循rails命名約定的第三方UI小部件)。雖然這可能有點臭,但是我可以編寫補丁程序,以便只有在呼叫來自第三方表單時才激活。

我寫了一個補丁,可以覆蓋正常行爲;但是,我想知道是否可以從我的修補程序中調用原始方法?

當然,我可以將原始assign_attributes剪切並粘貼到我的補丁中。有沒有更好的辦法?

回答

0

alias_method_chain存在這個確切的情況。

這並不總是正確的選擇,但是當你有一個合適的用例時,這個用例看起來很合適。

+0

原來我在吠叫錯誤的樹。但是,這是該樹的正確答案。謝謝。 –