代码优化/更好的操作类名的方法
我有这段代码很长时间了,我想知道是否有更短或更好的方法来做到这一点。我们有匹配的服务和工作人员,此代码为某些工作人员找到匹配的服务。
def FooWorker
def service_klass
self.class.name
.then(&:underscore)
.then { |name| name.split('_') }
.then { |name| name[0...-1] << :service }
.then { |name| name.join('_') }
.classify
.safe_constantize
end
end
FooWorker.service_klass # -> FooService
回答
你为什么不直接替换Worker为Service?
def service_klass
self.class.name.sub(/Workerz/, 'Service').safe_constantize
end