2016-04-05 15 views
-2

Ich bin neu bei Ruby, also bin ich mir nicht genau sicher, was ich falsch mache oder verletze.Wie ein Objekt (Klasse) ein Parameter für ein anderes Objekt (Klasse) in Ruby sein kann

Ich habe zwei Klassen in meinem Beispiel, Deliverable und Pillar.

Ein Säulenobjekt kann ein oder mehrere Ergebnisse enthalten.

class Deliverable 
    def initialize (name, state, pillar) 
    @name = name 
    @state = state 
    @pillarNumber = pillar 
    end 

    def getName 
    @name 
    end 

    def state 
    @state 
    end 

    def pillarNumber 
    @pillarNumber 
    end 
end 

class Pillar 
    def initalize (name, mine) 
    @name = name 
    @mine = mine 
    end 

    def getName 
    @name 
    end 

    def getDeliverable 
    @mine 
    end 

    def getDeliverableName 
    @mine.getName 
    end 
end 


aDel = Deliverable.new("Deliverable", 0, 1) 
puts "Deliverable Name: " + aDel.getName 

aPil = Pillar.new("Pillar", aDel) 
puts "Pillar Name: " + aPil.getName + "\n" 

Wenn ich diesen Code ausführen bekomme ich diesen Fehler:

pillar.rb:46:in `initialize': wrong number of arguments (2 for 0) (ArgumentError) 
from pillar.rb:46:in `new' 
from pillar.rb:46:in `<main>' 

Jede beraten, was ich falsch mache?

+4

Es gibt einen Tippfehler in 'Pillar' ist:' 'initalize' initialize' – Doguita

+0

ich mis-spell initialisieren die ganze Zeit sein sollte! :) – Kris

Antwort

0

Sie mispelled den Namen des Konstrukteurs für Pillar

#  ⇓ NOTE MISSED “i” HERE 
def initialize (name, mine) 
+0

Danke, hätte das nie abgeholt. – TookieZA

Verwandte Themen