我的应用程序 lib 目录中有以下类:
代理.rb
class Proxy
end
ga_proxy.rb
class GaProxy < Proxy
include GaProxy::Metrics
end
指标.rb
class GaProxy
module Metrics
end
end
加载顺序在这里很重要:
metrics.rb需要在ga_proxy.rb之前加载
proxy.rb需要在ga_proxy.rb之前加载
但是如果 metrics.rb 在 ga_proxy 之前加载,那么我会得到“类 GaProxy 的父类(super class)不匹配”,因为 GaProxy 已经在没有父类的情况下定义。
我怎样才能解决这个问题?
谢谢
最佳答案
在您的application.rb
文件中,按顺序指定要加载的每个文件:
config.autoload_paths += %W( #{config.root}/lib/proxy.rb, #{config.root}/lib/metrics.rb, #{config.root}/lib/ga_proxy.rb )
关于ruby-on-rails - Rails 库加载顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591211/