J'utilise les rails 4.1.1 et ActionMailer :: Aperçu pour prévisualiser les courriels. Dans l'environnement de développement, tout fonctionne excellent. P>
Mais dans l'environnement de production, les itinéraires de prévisualisation ne sont pas accessibles. Je stocke les aperçus dans Test / Mailers / Aperçu / P>
est possible de leur permettre de production? P>
5 Réponses :
des rails 4.2 Vous pouvez utiliser le drapeau de production.rb (ou autre environnement personnalisé): Je n'ai rien trouvé similaire dans des rails 4.1. P>
Si la RSPEC utilisait, par exemple, il sera nécessaire d'ajouter le chemin de trajectoire: p> config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
L'application répond avec "à des fins de sécurité, ces informations sont uniquement disponibles pour les demandes locales". Si nous essayons de l'exécuter sur le serveur
Vous devez également ajouter config.Consider_all_requests_local = true code>
Je suis sur Rails 5 et ce cadre a fonctionné pour moi. Les aperçus de courrier sont toutefois disponibles dans le monde entier. Nous devrons proposer quelque chose pour bloquer les utilisateurs non administratifs. Notez qu'il est une très mauvaise idée de définir config.Consider_all_requests_local = true code> dans un environnement de production - les utilisateurs de la pile interne et les messages d'erreur de la pile interne plutôt que de votre 404 ou 500 pages.
En plus de cela:
config.action_mailer.preview_path ||= defined?(Rails.root) ? "#{Rails.root}/test/mailers/previews" : nil config.autoload_paths += [config.action_mailer.preview_path]
J'ai dû changer config.cache_classes = false code> afin de le faire fonctionner dans la 4.2.2, non testée dans une autre version.
Un mot d'avertissement que vous ne devriez absolument pas définir config.Consider_all_requests_local code> car cela videra les messages d'erreur au navigateur, identique à celui que vous constatez pendant le mode de développement. Vous ne voulez certainement pas faire cela dans un environnement de production qui a des utilisateurs réguliers dans le monde. Voir le "pour le faire sans ouvrir un gros trou de sécurité" répondre dans ce fil!
Pour le faire sans ouvrir un gros trou de sécurité:
Je reçois l'ajout du avant_filter code> et remplacer le
local_request? Code> méthode pour le
:: rails :: mailerscontroller code> classe. Mais les modifications de la section
MyApp :: Application.Configure CODE> semblent inutiles. On dirait que la manière sécurisée serait de définir
config.action_mailer.show_previews = true code>, puis utilisez la partie inférieure de ce que vous avez suggéré. Pouvez-vous m'aider à comprendre sur les chemins et les itinéraires?
Il est possible d'activer les aperçus dans la production par Je veux juste ajouter comment vous pouvez rendre les aperçus sur Iframe dans votre propre zone d'administration, par exemple. Dans ACTIVE Admin (Rails 5.1) P>
Et aussi je trouve qu'il est pas si difficile à écrire votre propre aperçus e-mail administration a >, et n'utilisez pas du tout des aperçus standard. Vous pouvez ensuite ajouter vos propres fonctionnalités telles que modifier les paramètres de prévisualisation ou envoyer em> pour voir cet e-mail sur votre téléphone. P> config.action_mailer.show_previews = true code> comme indique la meilleure réponse. P>
Voici ce que j'ai fait pour les rails 5.2:
production.rb code> p> blockQuote>
xxx pré> en supposant que votre
ApplicationController :: Autorisation Code> Le code de
requiert_admin code>. J'ai préféré cette approche plutôt que de réécrire mon code d'autorisation. Rappelez-vous d'inclure le
:: code> à l'avant était difficile, car dire
Inclure ApplicationController :: ... code> va regarder dans les
Rails :: MailersController Code> Espace de noms . p> p>