在Ruby中使用别名attr_reader

时间:2010-01-16 18:46:55

标签: ruby

是否可以在Ruby中为attr_reader方法添加别名?我有一个favourites属性的类,我想为美国用户别名favorites。什么是惯用的Ruby方法呢?

2 个答案:

答案 0 :(得分:13)

是的,你可以使用别名方法。一个非常棘手的例子:

class X
  attr_accessor :favourites
  alias :favorites :favourites
end

答案 1 :(得分:6)

attr_reader只是生成适当的实例方法。这样:

class Foo
  attr_reader :bar
end

与:

相同
class Foo
  def bar
    @bar
  end
end

因此,alias_method可以按照您的预期运行:

class Foo
  attr_reader :favourites
  alias_method :favorites, :favourites

  # and if you also need to provide writers
  attr_writer :favourites
  alias_method :favorites=, :favourites=
end