रूबी के साथ तुरंत फू? [डुप्लिकेट] - रूबी, कक्षा, ओओपी, आवश्यकता, तत्कालता

मैं कैसे इन्स्तांत करना से फू bar.rb?

[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$ cat foo.rb
#file: foo.rb
class Foo
def initialize
puts "foo"
end
end
[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$ cat bar.rb
#file: bar.rb
require "foo"

Foo.new
[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$ ruby bar.rb
/home/thufir/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require": cannot load such file -- foo (LoadError)
from /home/thufir/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require"
from bar.rb:2:in `<main>"
[email protected]:~/ruby/hello$

इस समय मॉड्यूल का उपयोग नहीं कर रहा है। ठीक काम करता है जब Foo इन लाइन है:

[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$ ruby bar.rb
foo
[email protected]:~/ruby/hello$
[email protected]:~/ruby/hello$ cat bar.rb
class Foo
def initialize
puts "foo"
end
end


Foo.new




[email protected]:~/ruby/hello$

उत्तर:

जवाब के लिए 2 № 1

स्टैक ट्रेस आपको बता रहा है कि आपका require "foo" काम नहीं कर रहा है क्योंकि यह फ़ाइल नहीं ढूंढ सकता है foo.rb

वह है क्योंकि require उस तर्क को व्याख्या करता है जिसे आप इसे पूर्ण पथ के रूप में देते हैं, या यह निर्दिष्ट फ़ाइल के लिए आपके रूबी लोड पथ की खोज करता है।

आप फ़ाइल को पूर्ण पथ प्रदान करके इसे हल कर सकते हैं। इस मामले में: require "/home/thufir/hello/foo" आपके लिए काम करेगा

आप भी इस्तेमाल कर सकते हैं require_relative "foo", जो एक फाइल की खोज करेगा foo.rb आपके जैसा ही निर्देशिका में bar.rb

https://ruby-doc.org/core-2.4.2/Kernel.html#method-i-require


संबंधित सवाल
सबसे लोकप्रिय