Bei der Verwendung von Ruby on Rails, insbesondere Rails 5, können Sie auf einen Fehler wie “Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true” stoßen. Hier sind Notizen zur Behebung dieses Fehlers.
Ursache des Fehlers
Dieser Fehler tritt auf, wenn beim Generieren von URLs kein Hostname angegeben ist. Zum Beispiel, wenn beim Generieren von Links in E-Mails der Hostname nicht festgelegt ist, weiß Rails nicht, welchen Hostnamen es verwenden soll, und zeigt diese Fehlermeldung an.
Lösungen
-
Geben Sie den :host-Parameter an
Geben Sie den :host-Parameter explizit beim Generieren von URLs an.
link_to 'Example', example_path(host: 'www.example.com') -
Setzen Sie default_url_options[:host]
Legen Sie einen Standard-Hostnamen fest, der in der gesamten Rails-Anwendung verwendet werden soll. Dies wird normalerweise in
config/environments/development.rboderconfig/environments/production.rbfestgelegt.Rails.application.routes.default_url_options[:host] = 'www.example.com' -
Setzen Sie :only_path auf true
Konfigurieren Sie, um nur den Pfad ohne Hostname zu generieren.
link_to 'Example', example_path(only_path: true)
Weitere Details finden Sie auch im zugehörigen Stack Overflow-Thread.