Active Support 핵심 확장을 사용하는 방법


96

Active Support 3.0.3이 설치되어 있고 Rails 3.0.3과 Ruby 1.8.7이 있습니다.

사용하려고 1.week.ago하면

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

다른 핵심 확장은 작동하는 것 같습니다. 친구의 컴퓨터 (동일한 설치 사양과 레거시 버전이 그의 컴퓨터에 있음)에서 동일한 결과를 시도했습니다.

무엇을 제공합니까?

이 모든 것이 IRB에 있습니다.


코드가 Rails 애플리케이션 내에서 실행 중인지 아니면 Rails 확장 기능을 사용하려는 Ruby 애플리케이션에서 실행 중인지 말하지 않습니다.
The Tin Man

답변:


137

Rails를 사용하면이를 자동으로 처리해야하므로 레일이 아닌 스크립트에 Active Support를 추가하려고한다고 가정하겠습니다.

" How to Load Core Extensions 읽기 .

Active Support의 메서드는 Rails 3에서 더 작은 그룹으로 나뉘어져 있으므로 간단한 .NET Framework로 불필요한 많은 것을로드하지 않습니다 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> 

rubygems와 active_record가 먼저 필요하지만이 수정은 그 후에 irb에서 작동합니다.
griotspeak 2010

내가 한 것은 예제에있는 것뿐이었습니다. 1.8.7에서도 실행하기 위해 수행 한 작업을 추가하겠습니다.
Tin Man

1
이것이 항상 필요하다면-어떤 코드 나 무언가를 가지고 놀고 있다고 가정 해 봅시다. .irbrc 파일을 추가하거나 수정하여 항상 사용하는 모든 lib를 요구할 수 있습니다. 시작할 때 자동으로로드됩니다. IE는 항상 awesome_print, hirb 및 일부 사용자 지정 메서드를 사용합니다. 그래서 저는 그것들을 거기에두고 1.hour.ago 또는 ap {: a => 3, : b => "와 같은 것에 대해 두 번 생각할 필요가 없습니다. nick "}을 사용하세요.
konung

1
확인하십시오 irbtools. 그것은 IRB에 대한 모든 종류의 멋진 조정을 포함합니다. 그리고 일시적으로 비활성화해야하는 경우 호출 irb -f하면로드되지 않습니다.
Tin Man

새로운 인기 는 Ruby 인터랙티브 세션을위한 Pry 라고 덧붙일 것입니다 . 매우 인상적.
틴 남자

28

이미 언급 한 라이브러리를 통해 세부적으로 라이브러리를 추가 할 수 있습니다.

require 'active_support/core_ext/some_class/some_file'

당신이 할 수있는 또 다른 레벨이 있습니다

require 'active_support/core_ext/some_class'

그러나, 그 순간에, 이것은 불행하게도 사용할 수 없습니다 Time, Date그리고 DateTime.

이 주위에 방법입니다 require 'active_support/time'당신을 줄 것이다 Time, Date하고 DateTime있는 모든 필요없이 영업 이익을 요구했다 해결할 것입니다.


active_support/core_ext/date및을 추가date_time하여 Rails v4.0.0에 추가 한 My Rails 패치 이므로 이제 개별적으로 요구할 수 있습니다. 예!



-3

콘솔에서 작동합니까? 이것은 나를 위해 일하고 있습니다.

$ 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

-4

다음을 수행 할 수 있습니다.
'active_support / core_ext'
또는
'active_support / all'필요

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.