सक्रिय समर्थन कोर एक्सटेंशन का उपयोग कैसे करें


96

मेरे पास एक्टिव सपोर्ट 3.0.3 स्थापित है और रूबी 1.8.7 के साथ रेल 3.0.3 है।

जब मैं उपयोग करने की कोशिश करता 1.week.agoहूं तो मुझे मिलता है

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

अन्य मुख्य एक्सटेंशन काम करने लगते हैं। मैंने इसे एक दोस्त के कंप्यूटर पर आज़माया (समान इंस्टॉल स्पेक्स और विरासत संस्करण उसी पर हैं) एक ही परिणाम के साथ।

क्या देता है?

यह सब आईआरबी में है।


आप यह नहीं कहते हैं कि आपका कोड रेल एप्लिकेशन के अंदर चल रहा है या रूबी एप्लिकेशन में जिसे आप कुछ रेल एक्सटेंशन का उपयोग करना चाहते हैं।
टिन मैन

जवाबों:


136

रेल का उपयोग करने के बाद से इसे स्वचालित रूप से संभालना चाहिए मुझे लगता है कि आप गैर-रेल स्क्रिप्ट में सक्रिय समर्थन जोड़ने की कोशिश कर रहे हैं।

" कोर एक्सटेंशन्स को लोड कैसे करें " पढ़ें ।

सक्रिय समर्थन के तरीके रेल 3 में छोटे समूहों में टूट गए, इसलिए हम एक सरल के साथ बहुत सारे अनावश्यक सामान लोड नहीं करते हैं require 'activesupport'। अब हमें जैसे काम करने हैं

require 'active_support/core_ext/object/blank'

यदि आप ग्रैन्युलैरिटी की परवाह नहीं करते हैं, तो आप बड़ी मात्रा में भार चुन सकते हैं। यदि आप एक बड़े gulp उपयोग में सब कुछ चाहते हैं ...

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> 

मुझे पहले माणिक्य और active_record की आवश्यकता होती है, लेकिन यह ठीक उसके बाद irb में काम करता है।
ग्रिटस्पेक

मैंने केवल वही किया जो उदाहरण में है। मैं इसे जोड़ देता हूँ जो मैंने इसे 1.8.7 में चलाने के लिए किया था।
टीन मैन

1
यदि आपको हर समय इसकी आवश्यकता है - मान लें कि आप कुछ कोड या किसी अन्य चीज से खेल रहे हैं, तो आप उन सभी लिबासों की आवश्यकता के लिए .irbrc फाइल को जोड़ या संशोधित कर सकते हैं, जिनका आप हर समय उपयोग करते हैं। यह उन्हें अपने आप शुरू होने पर लोड करेगा। IE मैं हर समय भयानक_प्रिंट, हिर्ब और कुछ कस्टम तरीकों का उपयोग करता हूं - इसलिए मैंने बस उन्हें वहां रखा और 1.hour.ago या एपी {: a => 3,: b => "जैसी चीजों के लिए दो बार नहीं सोचना पड़ा। निकल "} काम करने के लिए।
कोनूंग

1
जांच करें irbtools। इसमें IRB के सभी प्रकार के अच्छे ट्वीक्स शामिल हैं। और, यदि आपको उन्हें अस्थायी रूप से अक्षम करने की आवश्यकता है, तो कॉल करें irb -fऔर यह उन्हें लोड नहीं करेगा।
टिन मैन

मैं जोड़ता हूँ कि नई हॉटनेस एक रूबी इंटरैक्टिव सत्र के लिए 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, इसे रेल v4.0.0 में बनाया है, इसलिए अब आपको व्यक्तिगत रूप से इनकी आवश्यकता हो सकती है। वाह!



-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

आपको can
active_support / core_ext ’की आवश्यकता हो सकती है
या:
support active_support / all’ की आवश्यकता होती है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.