auto fait référence à l'objet courant.
Au sein d'une classe, self est utilisé pour définir une méthode de niveau classe.
class Foo
def self.for(facebook_id)
User.create_by_facebook_id(facebook_id)
end
end
définit une méthode de classe pour dans la classe Foo. Il est appelé:
Foo.for(facebook_id)
Vous pouvez rechercher des méthodes de classe sur Google pour en savoir plus.
Il pourrait être qu'une partie de Rails ou un plugin/gem attend que certaines classes auront une méthode de classe « pour » plus de contexte serait utile à cet égard.
Qu'est-ce que la méthode fait
Comme il est courant pour les méthodes de classe, il crée une instance d'une classe. Par exemple, la classe ActiveRecord a une méthode de classe "create" qui tente de créer une instance de la classe de modèle qui a été stockée dans la base de données. Ainsi User.create renverra une instance de la classe User qui a été stockée dans la base de données.
Dans votre code exemple, il appelle une méthode de classe « create_by_facebook_id » qui est fourni par la classe utilisateur dans l'application.
On dirait que la méthode « pour » est utilisé pour cacher des informations car tout qu'il fait est de faire un autre appel de méthode (à User.create_by_facebook)
Ajouté:
Par ailleurs, la valeur de retour par défaut des méthodes Ruby est la valeur de la dernière instruction. Ainsi, votre méthode d'exemple retournera l'instance d'utilisateur nouvellement créée à partir du facebook_id fourni.
Ceci n'est pas spécifique à Rails, donc je l'ai étiqueté comme tel. –