alias 和 alias_method 区别 ruby 1 class User def full_name puts "Johnnie Walker" end alias name full_name end User.new.name #=>Johnnie Walker 这两个例子中 alias 不需要逗号,还有冒号(或者双引号) class User def full_name puts "Johnnie Walker" end alias_method :name, :full_name end User.new.name #=>Johnnie Walker 2 class User def full_name puts "Johnnie Walker" end def self.add_rename alias_method :name, :full_name end end class Developer < User def full_name puts "Geeky geek" end add_rename end Developer.new.name #=> 'Gekky geek' 这两个例子中可以看出作用域不同,alias是进入原类进行操作,而alias_method是查找当前类同名方法进行操作 class User def full_name puts "Johnnie Walker" end def self.add_rename alias :name :full_name end end class Developer < User def full_name puts "Geeky geek" end add_rename end Developer.new.name #=> 'Johnnie Walker'