I don’t know why it is not mentioned any where in rails api, it could be very useful for all.

This is straight from rails\activesupport\lib\active_support\core_ext\module\deligation.rb :

Provides a delegate class method to easily expose contained objects’ methods
as your own. Pass one or more methods (specified as symbols or strings)
and the name of the target object as the final :to option (also a symbol
or string). At least one method and the :to option are required.

Delegation is particularly useful with Active Record associations:

class Greeter < ActiveRecord::Base
def hello()
"hello"
end

def goodbye()
"goodbye"
end

end

class Foo < ActiveRecord::Base
belongs_to :greeter
delegate :hello, :to => :greeter
end

Foo.new.hello # => “hello”
Foo.new.goodbye # => NoMethodError: undefined method `goodbye’ for #

Multiple delegates to the same target are allowed:
class Foo < ActiveRecord::Base
delegate :hello, :goodbye, :to => :greeter
end

Foo.new.goodbye # => “goodbye”