Ruby别名方法链

时间:2010-02-17 23:55:33

标签: ruby-on-rails ruby

我有一个这样的课程

class Foo
   attr_accessor :name
end

f = Foo.new
f.name = "bar"

我想用name属性响应以下方法链,以便它与另一个对象接口

f.baz.name == f.name

有一种简单的方法可以退货吗?

1 个答案:

答案 0 :(得分:3)

#!/usr/bin/ruby1.8

class Foo

  attr_accessor :name

  def baz
    self
  end

end

foo = Foo.new
foo.name = 'Fred'
p [foo.name, foo.baz.name]    # => ["Fred", "Fred"]
foo.baz.name = 'Barney'
p [foo.name, foo.baz.name]    # => ["Barney", "Barney"]