0

私はスタック オーバーフローと Ruby の両方にまったく慣れていないので、何かを正しくフォーマットしていない場合は事前にお詫びしますが、オブジェクトを介して親クラスから配列の値を呼び出したり表示したりする際に助けていただければ幸いです。

次のコードは、本 Learn Ruby the Hard Way (exercise 42) の一部として私が行っているタスク/学習ドリルです。

## Person is-a object
class Person

    def initialize(name)
        ## class Person has-a name
        @name = name

        ## person has-a pet of some kind
        @pet = nil
    end

    @possessions = ['house', 'car', 'clothes', 'furniture', 'guitar']

    attr_accessor :pet
    attr_accessor :possessions
end

## class Employee is-a Person
class Employee < Person

    def initialize(name, salary)
        ## set the @name attribute from class Person
        super(name)
        ## class Employee has-a salary
        @salary = salary
    end


    tasks = {"emails" => "Must answer all emails right away", 
            "reports" => "File two reports once a month",
            "reimbursement" => "File expenses to get reimbursements"
    }

    attr_accessor :tasks 
end

## Mary is-a person
mary = Person.new("Mary")

## Frank is-a Employee
frank = Employee.new("Frank", 120000)

# Study drill 4
puts mary.possessions[4]
puts frank.tasks["emails"]

以下は、スクリプトを実行したときにターミナルが返すものです (基本的には空のスペース)。

Macintosh:mystuff3 Vallish$ ruby ex42d.rb

Macintosh:mystuff3 Vallish$ 

構文が間違っているか、配列/ハッシュを間違って作成していると思います。これについて何か助けていただければ幸いです。

私の目的は、基本的に、クラス内の配列とハッシュから値を関連オブジェクトに渡してから、それらの値を呼び出すことです。

前もって感謝します!

4

1 に答える 1

0

@possessionsandの値を@tasks間違った場所に設定しています。initializeそれらは、クラス本体自体ではなく、インスタンスメソッド内 (またはその他のもの) に設定する必要があります。

于 2015-09-20T23:46:41.497 に答える