初学Ruby问题在这里......
我正在使用AWS SDK,当我想访问我使用的S3资源时:
Aws::S3::Resource.new
鉴于此代码来自aws-sdk
gem,我不应该:
require 'aws-sdk'
在我的文件顶部?
似乎没有这个工作,所以我只是好奇最好的做法,当我真正需要的时候。或者,如果我只是以完全错误的方式解决它......
答案 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行代码的组合起到了作用。