新手问题 require rubygems 问题

bpw11320 · 2012年10月05日 · 最后由 artone 回复于 2012年10月05日 · 5964 次阅读

刚找了个rack的pdf参照这上面的在弄。里面有段代码如下,我在irb里面一步步的输入,require "rubygems" 控制台返回的是false,pdf上说是会返回true的,但是我试了下代码可以运行。搜索了下 http://railsfun.tw/redirect.php?fid=26&tid=379&goto=nextoldset 里面给出的说明是,如果gem已经引入是会返回false的。

是这样的么? require "rubygems"到底会导入哪些包呢?

require "rubygems"
require "rack"

def pp(hash)
  hash.map { |key, value| }.sort.join("<br/>")
end
共收到 5 条回复

Ruby1.9默认就引入了rubygems

Ruby1.9.3 缺省加载 rubygems, rubygems是采用重写 require 实现包管理的. 默认下, 已经 require 的话, 返回值为 false. 此 false 不代表问题, 仅表明加载成功但已经在之前加载过了.

#2楼 @lyfi2003 #1楼 @hooopo 多谢解答,还有个问题。 rubygems是个什么玩意? 和gem 命令相比 是什么呢?

#3楼 @bpw11320 我不知道你说 gem 命令是指什么. 这里分两种情况, gem 在 Ruby代码中, 即方法. gem 作为单独命令.

  1. gem 方法, 不加载 rubygems 就无法使用 gem xx .

  2. gem 作为单独命令, 由 rubygems 提供支持. 你可以打开 RubyRoot/bin/gem 查看( RubyRoot 为你的 Ruby安装目录.

#3楼 @bpw11320

这里有很详细的介绍:http://guides.rubygems.org/

A RubyGem is a software package, commonly called a “gem”. Gems contain a packaged Ruby application or library. The RubyGems software itself allows you to easily download, install, and manipulate gems on your system.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册