我需要在ruby中使用自己的自定义方法创建一个对象,而不是默认的new()。
obj = User.new
如果我需要使用generate()为用户创建一个对象,如何实现。 所以当我输入
obj = User.generate
它应该创建User的对象。
我理解的一种方法是使用alias关键字对方法进行别名。
虽然我不确定。
是否有任何建议。??
答案 0 :(得分:4)
正如你所说,你可以alias_method
:
class << User
alias_method :generate, :new
end
您也可以委派:
class User
def self.generate(*args, &blk)
new(*args, &blk)
end
end
或者,您可以重新实施Class#new
所做的事情:
class User
def self.generate(*args, &blk)
obj = allocate
obj.send(:initialize, *args, &blk)
obj
end
end
答案 1 :(得分:2)
class User
def self.generate
new
end
end
答案 2 :(得分:0)
在generate
类
User
的类方法
答案 3 :(得分:0)
您可以调用您的特定方法,并在其中调用self.new
class User
def self.generate
self.new
end
end
obj = User.generate