【发布时间】:2009-10-25 09:37:48
【问题描述】:
好的标题很混乱,我先告诉你我的问题:
polymorphic_url 方法在 Rails 2.2.1 中进行了更改,以包含一些我需要的额外功能。但是,我想让应用程序在旧版本的 Rails 中仍然可以运行,所以如果运行旧版本的 Rails,我想修补 2.2.1 的行为。
alias_method_chain 来救援对吧?我无法让它工作。
def polymorphic_url_with_compat(*args)
whatever...
return polymorphic_url(*args)
end
alias_method_chain :polymorphic_url, :compat
现在我首先尝试将它放在帮助程序中 - alias_method_chain 失败,因为那时 polymorphic_url 没有定义。
所以我将相同的代码移到控制器中,它没有出错,但它被忽略了。
然后我尝试使用插件将其修补到 ApplicationController::Base - polymorphic_url 仍未定义。
polymorphic_url 在模块 ActionController::PolymorphicRoutes 中定义。我真的不知道它何时/何处混合到控制器/视图中。
我怎样才能以我想要的方式包装这个方法?
【问题讨论】:
标签: ruby-on-rails alias-method-chain