首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

alias_method_chain步骤在3.1以后的替代使用方式

2012-09-17 
alias_method_chain方法在3.1以后的替代使用方式alias_method_chain()是rails里的一个广泛使用的方法,简单

alias_method_chain方法在3.1以后的替代使用方式
alias_method_chain()
是rails里的一个广泛使用的方法,简单说,就是你要重写一个方法,在里面加上一个新方法后,还要使用同名的原方法调用。

使用和实现如下,



就说这个事现在流行的方式怎么调:
class SomethingNew  module Base    def my_method      puts "(A)"    end  end  module Extension    def my_method      puts "(B)"      super    end  end  include Base  include ExtensionendSomethingNew.new.my_method# Output:# >> (B)# >> (A)SomethingNew.ancestors # => [SomethingNew, SomethingNew::Extension, SomethingNew::Base, Object, Kernel]

1 楼 ruby_windy 2012-02-05   alias_method_chain并不那么清楚,移掉蛮好的.

新方法使用super,实现很ruby化~明白include的加载机制十分重要~ 2 楼 Hooopo 2012-02-05   什么时候移掉的?求链接。。 3 楼 夜鸣猪 2012-02-05   Hooopo 写道什么时候移掉的?求链接。。
俺是看railscast里提到,rails开始用新的方式
http://railscasts.com/episodes/232-routing-walkthrough-part-2
这个也有提到
http://piotrsarnacki.com/2010/06/18/rails-internals-railties/
ms都不是官方声明 4 楼 Hooopo 2012-02-05   是Rails里面不用这个方法了,但是还在activesupport里,没有移除。
写插件用super是不行的,还得用alias method chain.
5 楼 ruby_windy 2012-02-06   see 这个stackoverflow页:

http://stackoverflow.com/questions/3689736/rails-3-alias-method-chain-still-used

热点排行