2009-02-20 7 views
3

En regardant à travers les rails 2.3 Note de version RC1 Je vois ceci: Donc, en quelque sorteObtenir le nom d'une variable d'instance

# Equivalent of render :partial => 'articles/_article', :object => @article 
render @article 

la méthode render est de trouver le cet objet passé int il est affecté à une variable d'instance avec le nom article. Comment fait-il cela?

Répondre

9

Il détermine en fait le chemin partiel en utilisant le type de l'objet (un modèle), pas le nom de la variable d'instance. Donc, tant que le type est Article, cela fonctionnera, même si la variable d'instance est @foo.

Voir le code de ActionController :: RecordIdentifier.partial_path pour savoir comment le chemin est calculé à partir d'un objet.

1

La réponse de Dave Ray est correcte - Rails ne fait rien avec le nom de la variable ici. Dans le cas général, le type d'introspection que vous demandez est possible avec la bibliothèque ParseTree, mais cela pose des problèmes de portabilité (JRuby, Ruby 1.9, etc.).

Questions connexes