我想在rails
中了解ruby gems
如何在使用宝石的文件中自动使用而不是required
?
答案 0 :(得分:4)
Rails应用程序使用bundler(使用Gemfile
的东西)。当捆绑器在启动rails应用程序时加载Gemfile
时,它会自动要求所有列出的宝石,因此您不必自己执行此操作。
答案 1 :(得分:4)
这是通过bundler/setup
:http://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中的文件将自动生成 必需的。