代码之家  ›  专栏  ›  技术社区  ›  griotspeak

如何使用主动支持核心扩展?

  •  93
  • griotspeak  · 技术社区  · 14 年前

    我已经安装了Active Support 3.0.3和rails3.0.3以及Ruby 1.8.7。

    当我试着使用 1.week.ago 我明白了

    NoMethodError: undefined method 'week' for 1:Fixnum
    from (irb):2
    

    其他的核心扩展似乎也能工作。我在一个朋友的电脑上试过(他的电脑上有相同的安装规范和旧版本),结果也一样。

    给什么?

    所有这些都在IRB里。

    5 回复  |  直到 10 年前
        1
  •  136
  •   the Tin Man    10 年前

    因为使用Rails会自动处理这个问题,所以我假设您正在尝试向非Rails脚本添加活动支持。

    阅读“ How to Load Core Extensions ".

    Active Support的方法在Rails 3中被分成了几个小组,因此我们不会用一个简单的 require 'activesupport' . 现在我们要做的是 require 'active_support/core_ext/object/blank'

    如果不关心粒度,可以选择加载更大的块。如果你想一大口喝完所有东西。。。

    对于1.9.2:

    rvm 1.9.2
    irb -f
    irb(main):001:0> require 'active_support/all'
    => true
    irb(main):002:0> 1.week.ago
    => 2010-11-14 17:56:16 -0700
    irb(main):003:0> 
    

    对于1.8.7:

    rvm 1.8.7
    irb -f
    irb(main):001:0> require 'rubygems'
    => true
    irb(main):002:0> require 'active_support/all'
    => true
    irb(main):003:0> 1.week.ago
    => Sun Nov 14 17:54:19 -0700 2010
    irb(main):004:0> 
    
        2
  •  27
  •   the Tin Man    8 年前

    您可以通过前面提到的

    require 'active_support/core_ext/some_class/some_file'
    

    还有另一个层次你可以

    require 'active_support/core_ext/some_class'
    

    但不幸的是,目前还没有 Time , Date DateTime .

    解决这个问题的方法是 require 'active_support/time' 它会给你 时间 , 日期 日期时间 这就解决了操作人员的要求,而不需要任何东西。


    My Rails patch ,这增加了 active_support/core_ext/date date_time ,使之成为 Rails 4.0.0版 ,所以现在可以单独要求这些。耶!

        3
  •  -1
  •   Kazuya Gosho    6 年前

    在我的例子中,以下链接起作用:

    https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html

    $ cat Gemfile.lock | grep -A 1 "BUNDLED WITH"
    BUNDLED WITH
       1.17.3
    
    $ gem install bundler -v '1.17.3'
    
        4
  •  -2
  •   Paul Schreiber Jon Lin    14 年前

    这个在控制台上能用吗?这对我有用:

    $ sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.6.5
    BuildVersion:   10H574
    
    $ rails c
    Loading development environment (Rails 3.0.3)
    >> 1.week.ago
    => Sun, 14 Nov 2010 16:57:18 UTC +00:00
    
        5
  •  -4
  •   Lane    13 年前

    你可以:
    需要“主动支持/核心扩展”
    或:
    需要“主动支持/全部”