method

alias_method_chain

rails latest stable - Class: Module

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v5.0.0.1) is shown here.

alias_method_chain(target, feature)
public

NOTE: This method is deprecated. Please use Module#prepend that comes with Ruby 2.0 or newer instead.

Encapsulates the common pattern of:

alias_method :foo_without_feature, :foo
alias_method :foo, :foo_with_feature

With this, you simply do:

alias_method_chain :foo, :feature

And both aliases are set up for you.

Query and bang methods (foo?, foo!) keep the same punctuation:

alias_method_chain :foo?, :feature

is equivalent to

alias_method :foo_without_feature?, :foo?
alias_method :foo?, :foo_with_feature?

so you can safely chain foo, foo?, foo! and/or foo= with the same feature.

2Notes

Always pass a block

Lawjoskar · Aug 29, 200810 thanks

I highly recommend always taking a block and passing it back up the chain if you use alias_method_chain, even if the original method does not. Otherwise you're keeping anyone later in the chain from adding support for blocks.

http://tech.hickorywind.org/articles/2008/08/29/always-pass-a-block-when-using-alias_method_chain

Deprecated

koppen · Apr 1, 20092 thanks

This method is now at ActiveSupport::CoreExtensions::Module#alias_method_chain