使用require和引用gem对象

时间:2016-08-14 23:06:39

标签: ruby

初学Ruby问题在这里......

我正在使用AWS SDK,当我想访问我使用的S3资源时:

Aws::S3::Resource.new

鉴于此代码来自aws-sdk gem,我不应该:

require 'aws-sdk'

在我的文件顶部?

似乎没有这个工作,所以我只是好奇最好的做法,当我真正需要的时候。或者,如果我只是以完全错误的方式解决它......

1 个答案:

答案 0 :(得分:0)

内核方法require的想法非常简单。它运行文件为require d,但只运行一次。例如,有2个ruby脚本文件:

<强> foo.rb

puts 'foo'

<强> main.rb的

require '/path/to/foo.rb'
require '/path/to/foo.rb'

当您运行ruby main.rb时,您会看到它仅打印foo一次,但需要两次。

ruby​​脚本文件在其中定义模块或类是一种常见情况。 require - 这些文件将模块/类加载到内存中。

您说require 'aws-sdk'有时可以省略,因为bundler已经为您完成了require工作。

<强>的Gemfile

gem 'aws-sdk'

启动逻辑中的某处

require 'bundler/setup'
Bundler.require :default

3行代码的组合起到了作用。