Laissez-moi deviner, vous essayez de faire quelque chose comme ceci:
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
Mais bien sûr, cela ne fonctionne pas. para
, stack
, subtitle
, et ainsi de suite sont toutes les méthodes d'instance, mais vous essayez de les appeler comme méthodes de classe. Ils doivent être à l'intérieur d'une méthode d'instance, comme ceci:
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
Voyez comment ce genre de choses est dans la méthode pony_list
maintenant? Bien sûr, nous devons faire une instance appeler la méthode. Comment peut-on faire ça? C'est pourquoi nous appelons la méthode url
(qui, contrairement à para
et ses amis, est en fait une méthode de classe). Il définit l'URL par défaut pour appeler la méthode pony_list
. Rappelez-vous que vous devez appeler Shoes.app après votre définition de classe et vous êtes tous ensemble.
C'était tout. Merci pour l'explication. Je sais que je dois faire quelque chose de stupide. Dans l'exemple du livre 'Nobody Knows Shoes', il parle de l'utilisation de la méthode url lors de la division de l'application en plusieurs pages, mais je ne savais pas si je devais utiliser la méthode url dans un exemple très simple, comme le mien. On dirait que je devrai, chaque fois que je veux sous-classer la classe Shoes (et utiliser des méthodes comme para, pile etc). –