

rubyのモジュール化の問題を解いています。  
エラー文がなかなか解決できず、解決策がわかる方がいれば、教えて頂きたいです。

ruby main.rbで実行したところ  
下記のようなエラー表記となりました。

[code]

    $ ruby main.rb
    Traceback (most recent call last):
            3: from main.rb:1:in `<main>'
            2: from /home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
            1: from /home/ec2-user/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    /home/ec2-user/environment/human.rb:3:in `<top (required)>': uninitialized constant Animal (NameError)
    
[/code]

main.rb

[code]

    require "./human"
    
    # インスタンスの作成
    tanaka = Human.new("田中太郎",25,"電車")
    suzuki = Human.new("鈴木次郎",30,"野球")
    sato   = Human.new("佐藤花子",20,"映画")
    
    # メソッドを実行
    tanaka.say
    tanaka.think
    suzuki.say
    suzuki.think
    sato.say
    sato.think
    
[/code]

human.rb

[code]

    require "./thinkable"
    
    class Human < Animal
        include Thinkable
    
        #オブジェクトで何の変数を使うか設定する
        attr_accessor :hobby
    
        #インスタンスの値を初期化する特別なメソッド
        def initialize(name,age,hobby)
            self.name = name
            self.age = age
            self.hobby = hobby
        end
    
    end
    
[/code]

animal.rb

[code]

    #クラスの定義
    class Animal
    #オブジェクトの変数
        attr_accessor :name, :age
    
    #メソッド
    def say
        puts "#{self.name}です。#{self.age}歳です。"
    end 
    
    end
    =begin
       def initialize(name,age)
        self.name = name
        self.age = age
      end
    =end
    
    =begin
    animal = Animal.new('田中太郎', 25)  
    animal.say
    =end
    
[/code]

thinkable.rb

[code]

    #クラスの定義
    class Animal
    #オブジェクトの変数
        attr_accessor :name, :age
    
    #メソッド
    def say
        puts "#{self.name}です。#{self.age}歳です。"
    end 
    
    end
    
[/code]


CC BY-SA 4.0
2019-07-18T07:40:03.907
56723
2019-07-19T01:47:01.647
2019-07-18T08:16:49.857
3060
35162
question
ruby-on-rails ruby
ruby のモジュール化について


human.rbに`require "./animal"`が必要です。


CC BY-SA 4.0
2019-07-19T01:47:01.647
56736
2019-07-19T01:47:01.647
9608
56723
answer