说我有一个这样的课程:
class User
def initialize(name, id)
@name = name
@id = id
end
def name
@name
end
def id
@id
end
end
在这种情况下,如果我使用u = User.new("Joe", 5)
初始化用户,则调用u.name
将返回"Joe"
。但是,如果我调用未知方法,例如User.location
,则会得到一个NoSuchMethodException
。
是否有一种方法可以覆盖接收者的行为或User
类,以便当我调用User.location
时,它只会返回一个nil
值?
我已经尝试过对send
方法进行修补,但是该方法仅在调用User.send :location
时有效。
答案 0 :(得分:-3)
似乎答案可能涉及重写类的pos.x + pos.y
方法。正如其中一位评论者所说,您可以做到
method_missing
此处的更多信息:https://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Method_Calls#Special_methods。