代码之家  ›  专栏  ›  技术社区  ›  Vitaly Kushner

如何控制gems和插件在Rails中的加载顺序

  •  3
  • Vitaly Kushner  · 技术社区  · 17 年前

    我有一个插件,必须在资源控制器之前加载。原因是Resourcecontroller尝试加载ApplicationController,这取决于所述插件(如果插件的init.rb尚未加载,则加载将失败)。

    有没有加载插件的方法 之前 gems(来自environment.rb的“config.gem…”)?

    3 回复  |  直到 16 年前
        1
  •  2
  •   James Adam    17 年前

    config.gem 加载它们,但这并不意味着您不能自己加载资源控制器gem。

    作为一个非常残酷的解决方案,您可以删除相关的 config.gem 行,然后显式地 require "它就在它的底部, environment.rb

        2
  •  1
  •   james2m    16 年前

    对于environment.rb中的rails2.3x,将gem设置为lib=>false,然后在after_initialize块中需要gem

    config.gem 'some_gem', :lib => false
    config.after_initialize do
      require 'some_gem'
    end
    

    行了。

        3
  •  0
  •   amitkaz    17 年前

      load_gems
      load_plugins
    
      # pick up any gems that plugins depend on
      add_gem_load_paths
      load_gems
      check_gem_dependencies
    

    一些 插件需要的宝石。

    为什么不将resource_controller用作插件呢? 只是不要使用“config.gem…”并将其放在插件目录中。