我在rails应用程序中有一个名为Benchmark的模型,尽管在启动过程时,ruby默认需要它的基准模块。
为了使用我的基准测试模型,我是否可以卸载基准测试模块?
发布于 2017-07-04 11:05:43
您可以使用命名空间模型。
module Myapp
class Benchmark < ActiveRecord::Base
end
end您可能需要指定表名。
如果我是你,我只会给模型取一个不同的名字,例如标尺、指标或MyBenchmark。
发布于 2017-07-04 11:15:17
通常可以使用这样的逻辑从它们的原始名称中解除Ruby常量的绑定:
require "benchmark"
BM = Benchmark
Object.send(:remove_const, :Benchmark)
class Benchmark
def initialize
puts "Hey, I'm your custom Benchmark"
end
...
end但是,特别是对于最初的Benchmark实现来说,这是行不通的,因为它内部充满了像下面这样的名称引用:
@list << res = Benchmark.measure(label, &blk)最好的实用解决方案是选择一个“免费”同义词来命名您的模型。
https://stackoverflow.com/questions/44903703
复制相似问题