我有一个第三方gem,其扩展名为String
类:
class String
def to_url
self.gsub /\s+/, '-'
end
end
我让我的应用尝试扩展String
类:
class String
def to_url
Russian.translit self
super
end
end
如何从我的应用程序调用super(替换空格并进行音译)?我的代码执行super
,但跳过Russian.translit self
。
答案 0 :(得分:3)
没有超级电话。你应该使用alias_method
class String
alias_method :old_to_url, :to_url
def to_url
Russian.translit(self).old_to_url
end
end
答案 1 :(得分:0)
我认为你的Russian.translit self
工作正常,你只是没有使用结果。如果俄罗斯有这样的方法,你应该使用类似Russian.translit! self
的东西。
答案 2 :(得分:0)
耶!我找到了为super
调用self
的方法(如果有super
)。无法分配self
,但可以替换它的数据。
class String
def to_url
self.replace Russian.translit(self)
super
end
end