代码之家  ›  专栏  ›  技术社区  ›  keparo

Rails:vendor/gems或vendor/plugins?

  •  3
  • keparo  · 技术社区  · 16 年前

    我要在Rails应用程序中跟踪与Git子模块的依赖关系。到目前为止,我已经将诸如haml、shoulda和authlogic之类的子模块添加到了“供应商/插件”中。不过,我已经看到了我应该使用“供应商/宝石”的迹象。

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

    谢谢

    2 回复  |  直到 16 年前
        1
  •  2
  •   Milan Novota    16 年前

    短版本-如果它是一个插件,把它放到供应商/插件中,如果它是一个gem,它会被放到供应商/gem s中。然而,不需要通过子模块来跟踪gem依赖性——rails配置就足够了。所以,通常的模式是这样的:使用config.gem进行gem依赖性跟踪,使用git子模块进行插件依赖性跟踪——插件总是指向供应商/插件。

        2
  •  3
  •   Patrick Klingemann    16 年前

    简言之,除了下面提到的例外情况外,我会对所有东西使用config.gems。

    这是我将使用的工作流:

    1. 所有的插件/库,对于我需要的版本,gems都存在。

      环境.rb

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

      然后:

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

      script/plugin install github_url
      

      插件放在供应商插件中。

    3. 至于子模块,我只会将子模块用于我正在积极开发的插件/gems,或者我计划使用特定的提交,而不是head,如果我计划更改我经常使用的提交。