Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails库加载顺序_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails库加载顺序

Ruby 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在

我的应用程序库目录中有以下类:

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在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