Rails:供应商/宝石或供应商/插件?

时间:2010-04-12 16:06:01

标签: ruby-on-rails git plugins rubygems

我要在rails应用程序中使用git-submodules跟踪依赖项。到目前为止,我已经为“vendor / plugins”添加了haml,shoulda和authlogic之类的子模块。我已经看到了我应该使用'vendor / gems'的迹象。

问题:哪个目录是将依赖项作为子模块进行跟踪的适当位置?选择是否随意?

由于

2 个答案:

答案 0 :(得分:2)

简而言之,除了我在下面提到的例外情况之外,我会使用config.gems。

这是我使用的工作流程:

  1. 所有我需要的版本都存在宝石的插件/库,我这样做

    的environment.rb

    config.gem "plugin_name", :version => ">=1.0.0"
    

    然后:

    rake gems:unpack:dependencies
    
  2. 我从源代码安装的所有其他插件(Github等)我运行:

    script/plugin install github_url
    

    并将插件放在供应商插件中。

  3. 就子模块而言,我只使用我正在积极开发的插件/宝石的子模块或我计划使用特定提交的子模块,而不是HEAD,如果我打算更改提交我经常使用。

答案 1 :(得分:1)

简短版本 - 如果它是一个插件将它放入供应商/插件中,如果它是宝石,它会转到供应商/宝石。但是,没有必要通过子模块跟踪gem依赖关系--Rails配置就足够了。因此,通常的模式是:使用config.gem进行gem依赖关系跟踪,使用git-submodules进行插件依赖 - 而插件总是转到vendor / plugins。