2013-02-28 1 views
0

J'ai une webapp jouet dans laquelle le nom d'utilisateur de mes utilisateurs est aussi leur adresse e-mail (dans un format typique "<username>@<host>"). J'essaye de faire une méthode pour calculer l'adresse e-mail de l'utilisateur dans le modèle comme User#email, mais j'ai besoin d'accéder à la méthode d'aide URL() pour ce faire, qui n'est pas disponible dans le module de modèles.Comment définir l'adresse e-mail d'un utilisateur dans le modèle?

Existe-t-il un moyen d'accéder au chemin racine auquel la webapp a été liée, depuis l'intérieur des modèles?

Répondre

0

URL() utilise la demande pour comprendre l'hôte, mais vos modèles devraient être utilisables en dehors d'une demande aussi (par exemple dans la console). Dans ce cas, je recommande de le stocker globalement quelque part:

module App 
    EMAIL_HOST = "hello.com" 
end 

module App::Models 
    class User 
    def email 
     "#{username}@#{App::EMAIL_HOST}" 
    end 
    end 
end 
+0

Y a-t-il un moyen de "deviner" la racine à travers une autre couche, comme Rack, alors? J'ai essayé d'utiliser ENV, mais il n'est pas non plus disponible pour les modèles. – harbichidian

+0

Pas vraiment. Si l'adresse électronique dépend de la requête, elle n'appartient pas au modèle. Créer une aide à la place. –

Questions connexes