_
pourquoi lui-même a répondu à ce problème, et j'y reviendrai dans une minute. Tout d'abord, pour transmettre des données de la manière la plus simple (en particulier, les chaînes) entre les différentes urls est comme ceci:
class MyShoe < Shoes
url '/', :index
url '/somewhere/(\d+)', :somewhere
def index
@var = para link("What is 2 + 2?", :click => "/somewhere/4")
end
def somewhere(value)
para "2 + 2 = #{value}"
end
end
Shoes.app
Il correspondront aux sous-groupes de la regex et passer les chaînes correspondantes en tant que paramètres à la méthode. Parfois utile, mais il devient vite difficile. L'autre solution consiste à utiliser des constantes ou des variables de classe, comme _
why explains here:
OK, rigoler plus loin, il ressemble à toutes les variables d'instance se
essuyée au début de chaque méthode dans une sous-classe de chaussures .
C'est OK je suppose. Alors, quel est le moyen préféré d'avoir des données
qui est partagée d'une URL de chaussures à l'autre? Le passage d'une page
à l'autre dans l'URL elle-même fonctionne - si c'est une chaîne. Si ce n'est pas
une chaîne, que devez-vous utiliser - @@ class_variables?
Bien sûr, vous pouvez utiliser une classe var. Ceux sont garantis pour persister tout au long de la vie de l'application . Ou une constante.
En outre, chaussures est livré avec SQLite3, les données peuvent être passés là.
Dans votre exemple, il ressemblerait à ceci:
class MyShoe < Shoes
url '/', :index
url '/somewhere', :somewhere
def index
@@var = para link("go somewhere", :click => "/somewhere")
end
def somewhere
para "var = #{@@var.inspect}"
end
end
Shoes.app
Merci encore Pesto. Je pense que j'ai fini de te harceler pour la journée :-) – Simon