我在lib
文件夹
module Service::Log
extend ActiveSupport::Concern
module ClassMethods
def logger
Rails.logger
end
end
end
class Service::MyService
include Service::Log
end
当我尝试通过对象实例调用logger
方法时,我收到一条错误消息 - NoMethodError:undefined method`logger'for - Service :: MyService:0x007fdffa0f23a0
Service::MyService.new.logger
我做错了什么?我正在使用Rails 4.0.2
。
答案 0 :(得分:2)
您将记录器方法定义为类方法,而不是常规方法。这应该有效:
module Service::Log
extend ActiveSupport::Concern
def logger
Rails.logger
end
end
class Service::MyService
include Service::Log
end
Service::MyService.new.logger
之前定义方法的方式允许您直接在类上使用logger方法,例如:
Service::MyService.logger