2012-06-26 80 views
0

我需要ActiveRecord :: AttributeAssignment.assign_attributes(new_attributes,options)的不同行为。Ruby:如何拦截方法,摆弄args然后调用方法

对于我的整个Web应用程序,我想评估[并经常覆盖] new_attributes。 (我想这样做来支持不遵循rails命名约定的第三方UI小部件)。虽然这可能有点臭,但是我可以编写补丁程序,以便只有在呼叫来自第三方表单时才激活。

我写了一个补丁,可以覆盖正常行为;但是,我想知道是否可以从我的修补程序中调用原始方法?

当然,我可以将原始assign_attributes剪切并粘贴到我的补丁中。有没有更好的办法?

回答

0

alias_method_chain存在这个确切的情况。

这并不总是正确的选择,但是当你有一个合适的用例时,这个用例看起来很合适。

+0

原来我在吠叫错误的树。但是,这是该树的正确答案。谢谢。 –