ruby gem如何在rails环境中工作

时间:2014-08-28 20:12:49

标签: ruby-on-rails ruby gem

我想在rails中了解ruby gems如何在使用宝石的文件中自动使用而不是required

3 个答案:

答案 0 :(得分:4)

Rails应用程序使用bundler(使用Gemfile的东西)。当捆绑器在启动rails应用程序时加载Gemfile时,它会自动要求所有列出的宝石,因此您不必自己执行此操作。

答案 1 :(得分:4)

这是通过bundler/setuphttp://bundler.io/v1.3/bundler_setup.html完成的。在config/boot.rb文件中需要它。简而言之,它首先将环境变量设置为指向您的Gemfile:

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

然后通过要求bundler/setup将所有宝石的路径添加到LOAD_PATH:

require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])

然后它需要所有需要的gems(config / application.rb):

Bundler.require(*Rails.groups)

答案 2 :(得分:1)

我建议你阅读"Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development" 第1章创建我们自己的渲染器:

  

请注意,gem与lib目录中的文件名称相同   是pdf_renderer。遵循此约定,每当您声明此gem时   一个Rails应用程序的Gemfile,lib / pdf_renderer.rb中的文件将自动生成   必需的。