Ruby on rails 修改属于扩展类的对象的默认返回值
我对rails语法比较陌生。我有一个日志字符串类Ruby on rails 修改属于扩展类的对象的默认返回值,ruby-on-rails,ruby,arrays,class,Ruby On Rails,Ruby,Arrays,Class,我对rails语法比较陌生。我有一个日志字符串类 class LogString < Array 这很好用。我只想写作 logs 要返回可能是日志的内容,请执行join(“|”) 所以我在这里寻找一种类似于方法log\u字符串的语法 class LogString < Array def log_string self.join( ' | ' ) end end class日志字符串
class LogString < Array
这很好用。我只想写作
logs
要返回可能是日志的内容,请执行join(“|”)
所以我在这里寻找一种类似于方法log\u字符串的语法
class LogString < Array
def log_string
self.join( ' | ' )
end
end
class日志字符串
但是,当我简单地编写类实例名称时,会自动调用logu字符串:logs
我如何才能做到这一点?添加以下内容:
def to_s
join '|'
end
这将在模板和一些I/O操作中起作用,其中#to#s被称为。除非您同时修改
#inspect
,否则它在irb中不起作用。(你可以让它调用你的新#to_。)你不能只引用一个对象,让它调用对象上的一个方法,但你可以非常接近
如果您重写to_s
方法(tostring的缩写),您将能够执行以下操作
class LogString < Array
def to_s
self.join ' | '
end
end
log = LogString.new
log << "message one"
log << "message two"
puts "#{log}"
class日志字符串class LogString < Array
def to_s
self.join ' | '
end
end
log = LogString.new
log << "message one"
log << "message two"
puts "#{log}"