Lassen Sie mich raten, Sie versuchen, etwas zu tun:
class MyClass < Shoes
stack :width => 200 do
subtitle 'People who like ponies'
para 'TheTXI'
para 'Pesto'
para 'Einstein'
end
stack :width => -200 do
subtitle 'People who hate ponies'
para 'Hitler'
para 'Stalin'
para 'Einstein (He was bipolar)'
end
end
Nun natürlich das funktioniert nicht. para
, stack
, subtitle
usw. sind alle Instanzmethoden, aber Sie versuchen, sie als Klassenmethoden zu bezeichnen. Sie haben innerhalb einer Instanz Methode sein, wie folgt aus:
class MyClass < Shoes
url '/', :pony_list
def pony_list
stack :width => 200 do
subtitle 'People who like ponies'
para 'TheTXI'
para 'Pesto'
para 'Einstein'
end
stack :width => -200 do
subtitle 'People who hate ponies'
para 'Hitler'
para 'Stalin'
para 'Einstein (He was bipolar)'
end
end
end
Shoes.app :width => 400
Sehen Sie, wie das Zeug in der jetzt pony_list
Methode? Natürlich müssen wir eine Instanz aufrufen, um die Methode aufzurufen. Wie können wir das machen? Deshalb rufen wir die Methode url
auf (die im Gegensatz zu para
und ihren Freunden tatsächlich eine Klassenmethode ist). Es legt die Standard-URL fest, um die Methode pony_list
aufzurufen. Denken Sie daran, dass Sie Shoes.app nach Ihrer Klassendefinition aufrufen müssen und alles bereit ist.
Das war es. Danke für die Erklärung. Ich weiß, ich muss etwas Dummes tun. In dem Beispiel im Buch "Nobody Knows Shoes" spricht er über die Verwendung der URL-Methode beim Teilen der App in mehrere Seiten, aber ich war mir nicht sicher, ob ich die URL-Methode in einem sehr einfachen Beispiel wie meiner verwenden muss. Sieht so aus, als müsste ich irgendwann die Shoes-Klasse ableiten (und Methoden wie para, stack usw. verwenden). –