Ruby (et le framework Rails) est le premier nouveau langage de programmation que j'ai appris depuis l'obtention de mon diplôme en 1987; Donc, s'il vous plaît supporter avec un newbee virtuel sur cette question.Pourquoi utiliser une variable locale au lieu d'une variable d'instance dans Session_Controller
J'ai travaillé sur le très bon tutoriel de Michael Hartl, Learn Rails By Example. Après avoir traversé les 8 premiers chapitres relativement indemnes, j'ai atteint un barrage mental dans le chapitre 9. Je comprends la différence fondamentale entre les variables d'instance et les variables locales (à la fois dans Ruby et plus spécifiquement dans Rails). Mais, je ne comprends pas pourquoi Michael utilise la variable locale "user" dans son contrôleur de sessions plutôt que la variable d'instance "@user". Voir, par exemple, la méthode Create dans la liste 9.9 de http://railstutorial.org/chapters/sign-in-sign-out#top. Michael repose sur un module Sessions_helper pour effectuer l'affectation suivante: "@current_user = user", mais s'il avait utilisé une variable instances en premier lieu, aurait-il dû faire l'affectation du tout (en supposant que les instances les variables sont disponibles dans les contrôleurs, les vues et les aides)? Est-il allé avec la variable locale de sorte que dans le module d'aide qu'il pourrait redéfinir la méthode « current_user » pour être,
def CURRENT_USER
@current_user ||= user_from_remember_token
fin
Il est probablement clair pour vous les gars que je Je patauge un peu ici. Quoi qu'il en soit, merci d'avance à tous ceux qui peuvent me diriger directement.
-Chuck
Merci beaucoup pour la perspicacité. Je vais devoir tout laisser tomber toute la nuit. –
Je l'ai édité pour essayer de le rendre plus clair. – johnmcaliley
Merci encore. Avec votre aide, ça vient ensemble. –