ruby-on-rails - Rails 库加载顺序

标签 ruby-on-rails ruby ruby-on-rails-3

我的应用程序 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/

相关文章:

ruby-on-rails - Rails - 使用 paypal-recurring gem 处理 PayPal IPN 回调

ruby - 将 ssh 公钥转换为 pem 格式

ruby - 在写入时将 .mov 流式传输到浏览器

ruby - ruby MRI 中的赋值是原子操作吗?

ruby-on-rails - 使用用户或管理员模型和 Basecamp 样式子域设计登录

ruby-on-rails-3 - 如何在项目页面上放置打印链接/按钮来打印信息?

ruby-on-rails - 如何在 Rails 3 Controller 中使用 image_path

javascript - 未评估第二个变量

ruby-on-rails - Rails应用程序中未初始化的常量 capybara (NameError)

ruby-on-rails - rails I18n : error 'translation missing' when i try translate this words "off"