0

我需要 ActiveRecord::AttributeAssignment.assign_attributes(new_attributes, options) 的不同行为。

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

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

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

4

2 回答 2

0

alias 或 alias_method 应该可以解决问题,请参阅 about.com 上的 Ruby:aliasing

于 2012-06-26T06:11:30.780 回答
0

alias_method_chain对于这种确切的情况存在。

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

于 2012-06-26T06:23:10.737 回答