Ruby on rails Rails库加载顺序
我的应用程序库目录中有以下类: proxy.rbRuby on rails Rails库加载顺序,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我的应用程序库目录中有以下类: proxy.rb class Proxy end ga_proxy.rb class GaProxy < Proxy include GaProxy::Metrics end 装载顺序在这里很重要: 需要在ga_proxy.rb之前加载metrics.rb class GaProxy < Proxy include GaProxy::Metrics end 需要在ga_proxy.rb之前加载proxy.rb 但如果metrics.rb在
class Proxy
end
ga_proxy.rb
class GaProxy < Proxy
include GaProxy::Metrics
end
装载顺序在这里很重要:
需要在ga_proxy.rb之前加载metrics.rb
class GaProxy < Proxy
include GaProxy::Metrics
end
需要在ga_proxy.rb之前加载proxy.rb
但如果metrics.rb在ga_proxy之前加载,则会得到“类GaProxy的超类不匹配”,因为GaProxy已经在没有父类的情况下定义
我怎样才能避开这个问题
谢谢我从来没有遇到过这个问题,但是为什么您不能在配置/初始化器中执行以下操作 创建一个文件config/initializers/libs.rb
require 'proxy'
require 'ga_proxy'
require 'metrics'
在
application.rb
文件中,按顺序指定要加载的每个文件:
config.autoload_paths += %W( #{config.root}/lib/proxy.rb, #{config.root}/lib/metrics.rb, #{config.root}/lib/ga_proxy.rb )
通常,在ruby中,您需要文件中所需的内容:
# ga_proxy.rb
require './proxy'
require './metrics'
class GaProxy < Proxy
include GaProxy::Metrics
end
# metrics.rb
class GaProxy < Proxy
module Metrics
end
end