说有三大类:A,B和C.我想每个班有一个类的方法,说self.foo,刚好有对相同的代码A,B及C.
是否可以self.foo在模块中定义并包含此模块A,B&C?我试图这样做并收到一条错误消息,说明foo无法识别.
我想要:
module MyLog
def log
unless @log
@log = Logger.new(log_path)
@log.formatter = proc do |severity, datetime, progname, msg|
"#{datetime} #{msg}\n"
end
end
@log
end
end
Run Code Online (Sandbox Code Playgroud)
要在其他类之间重用,如下所示:
Class A
def self.log_path; 'log/a.log' end
def log_path; 'log/a.log' end
include MyLog
extend MyLog
def some_method
log.debug 'some thing'
end
def self.some_class_method
log.debug 'in a class method'
end
end
Run Code Online (Sandbox Code Playgroud)
是否比A类开始时的那四行短?
我想分批记录:
def expire
expired_ids = []
failed_ids = []
all.each do |event|
if event.expire # saves record
expired_ids << event.id
else
failed_ids << …Run Code Online (Sandbox Code Playgroud) ruby ×2