【问题标题】:`require` vs. `gem` methods?`require` 与 `gem` 方法?
【发布时间】:2014-03-23 05:13:09
【问题描述】:

requiregem 方法有什么区别?

比如require 'minitest'gem 'minitest'有什么区别?

【问题讨论】:

    标签: ruby gem require


    【解决方案1】:

    Kernel#require 激活最新版本的 gem。

    Kernel#gem(由RubyGems 添加)允许激活特定的gem 版本。

    【讨论】:

    • 从答案看来gemrequire 的替代品,实际上gem 只是告诉require 要加载哪个版本的gem。
    • 感谢您在这里分享您的知识 :-) +1
    【解决方案2】:

    假设您安装了两个版本的 gem foo

    $ gem list foo
    
    *** LOCAL GEMS ***
    
    foo (2.0.1, 2.0.0)
    

    如果只使用require,则默认加载最新版本:

    require 'foo'       # => true
    
    Foo::VERSION        # => "2.0.1"
    

    如果你在调用require之前使用gem,你可以指定一个不同的版本来使用:

    gem 'foo', '2.0.0'  # => true
    require 'foo'       # => true
    
    Foo::VERSION        # => "2.0.0"
    

    注意:使用 gem 而不随后调用 require 不会加载 gem。

    gem 'foo'           # => true
    
    Foo::VERSION        # => NameError: uninitialized constant Foo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 2011-07-17
      相关资源
      最近更新 更多