相关疑难解决方法(0)

Ruby:是否可以在模块中定义类方法?

说有三大类:A,BC.我想每个班有一个类的方法,说self.foo,刚好有对相同的代码A,BC.

是否可以self.foo在模块中定义并包含此模块A,B&C?我试图这样做并收到一条错误消息,说明foo无法识别.

ruby

59
推荐指数
5
解决办法
4万
查看次数

一次定义类和实例方法-Ruby

我想要:

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

1
推荐指数
1
解决办法
1483
查看次数

标签 统计

ruby ×2