我知道我可以做到以下三行:

class << self
  alias :generate :new
end

但是出于好奇,有没有一种更简单的方法(没有分号)像:

class_alias :generate, :new

推荐答案

由于Ruby 1.9,您可以使用singleton_class方法访问类的singleton对象.这样,您也可以访问alias_method方法.方法本身是私有的,因此需要使用send调用它.这是你的一句台词:

singleton_class.send(:alias_method, :generate, :new)

但是请记住,alias在这里不起作用.

Ruby相关问答推荐

在Glade创建的UI中以编程方式填充GtkTreeView

如何通过语法将Ruby Sorbet签名突出显示为不强调的 comments ?

带有(*)签名的Ruby方法

Rails 7 - 访问连接模型生成新查询

令人惊讶的有效 Ruby 语法:% 无处不在

get.chomp() 与 STDIN.gets.chomp() 有什么区别?

我在哪里可以找到积极开发的 Ruby lint 工具?

以编程方式获得完整的 Ruby 版本?

Nokogiri/Xpath 命名空间查询

在 MacOS Sierra 上使用 RMagick 2.16 的 ImageMagick 7 找不到 MagickWand.h

在 Ruby 中,如何确定字符串是否不在数组中?

Rails - RSpec - let和let!之间的区别

Vim 用 ruby​​ 语法高亮显示很慢

我应该在我的 ruby​​ 脚本中定义一个 main 方法吗?

Ruby注入初始为哈希

rspec 是否有比 target.should < 6 更具体的东西?

ruby 中&:运算符的功能是什么?

如何计算Ruby日期的星期几?

=== 与 == 在 Ruby 中

如何在 Ruby 中创建整数循环?