2010-05-05 5 views
0

Mon projet actuel nécessite que j'assemble un fichier .zip contenant des modèles HTML et textuels qu'un utilisateur peut télécharger, pour l'importer dans un programme de marketing par e-mail. J'ai hérité de ce projet, et actuellement le code utilise un modèle "faux" (c'est-à-dire un modèle qui n'est pas directement corrélé à une table de base de données), dans lequel il stocke le modèle entier dans une chaîne. variables pour peupler certaines zones. Le "faux" modèle a alors une méthode pour créer un fichier zip.Rendre le HTML dans les rails sans l'afficher

Il me semble qu'il doit y avoir une meilleure façon de procéder. Je me demandais s'il y avait un moyen de déplacer le modèle dans un fichier .erb/haml, puis écrire une méthode qui peuplerait le fichier en préparation pour être compressé? Fondamentalement, est-il un moyen de rendre un fichier HTML et texte, sans avoir à les afficher?

Merci pour toute aide.

+0

"faux" modèle ou contrôleur? Normalement, le contrôleur est responsable du rendu et non du modèle. – jigfox

+0

Il s'agit d'une classe située dans le dossier models, mais elle n'est pas associée à un objet de base de données. Au lieu de cela, il nécessite l'ID d'un modèle réel à lui passer lorsque la classe est appelée. –

Répondre

1

Il suffit d'écrire l'action et en vue de rendre le HTML et texte normal, utilisez alors la méthode render_to_string pour affecter le contenu des chaînes

http://apidock.com/rails/ActionController/Base/render_to_string

Ensuite, vous pouvez exécuter la méthode du modèle (espérons-une méthode de classe) pour créer le fichier zip en utilisant le contenu que vous avez maintenant dans les variables d'instance

Questions connexes