web-dev-qa-db-fra.com

Hôte manquant pour créer un lien vers! Veuillez fournir le paramètre: Host, pour Rails 4

Hôte manquant pour créer un lien vers! Veuillez fournir le paramètre: Host, définissez default_url_options [: Host] ou définissez: only_path sur true

J'obtiens aléatoirement cette erreur à la fois, le redémarrage général du serveur résout le problème pendant un certain temps, puis il réapparaît. J'ai ajouté config.action_mailer.default_url_options = "localhost:3000", dans les fichiers de développement et test.rb.

De plus, j'ai utilisé include Rails.application.routes.url_helpers dans un module pour avoir accès aux routes, j'ai lu que cela pouvait être la raison pour laquelle j'obtiens ces erreurs mais le supprimer me laissera sans accès aux routes.
Le module est destiné à la gemme des tables de données.

13
Raunak Joneja

Pour Rails 5, utilisez:

Rails.application.routes.default_url_options[:Host] = "XXX"

Vous pouvez mettre cela dans un config/environments/ fichier (ou tout autre initialiseur), ou par exemple au début de config/routes.rb.

26
David

Vous devez écrire de la manière suivante

Pour le développement (development.rb)

config.action_mailer.default_url_options = { :Host => "localhost:3000" }

En production (production.rb)

 config.action_mailer.default_url_options = { :Host => "myproductionsite.com" }
12
Rajarshi Das

Vous avez mis à jour les options d'URL par défaut pour l'action mailer. Les assistants URL prendront l'option des paramètres action_controller.

config.action_controller.default_url_options = .....

BR

6
Andy

J'ai eu une erreur similaire. Le problème est dans votre configuration.

Essayez de réécrire votre configuration pour votre development.rb et test.rb comme ceci:

config.action_mailer.default_url_options = { Host: "localhost", port: 3000 }

Vérifiez également que votre configuration dans production.rb est écrite correctement comme ceci:

config.action_mailer.default_url_options = { Host: 'myherokuapp.herokuapp.com' }
2
Ruben Cruz