2009-07-28 20 views
0

Ich sende eine E-Mail, die einen Link zu meiner Website enthält. Ich möchte in der Lage sein, es lokal zu testen und in der Lage zu sein, die Skripte leicht zu verschiedenen Hosts zu verschieben.localhost auf Schienen

per E-Mail jetzt verwende ich folgendes:

<%= url_for(:host => 'localhost:3000', :controller => "user_activations", :action => "show", :id=>@id, :confirm=>@passcode) %> 

Dies funktioniert, wenn es lokal zu testen, aber offensichtlich für die Produktion scheitern. Gibt es eine einfache Möglichkeit, Rails (oder Ruby) zu erkennen, was der aktuelle Host ist? Ich denke etwas wie $ _SERVER von PHP.

Ich weiß, dass ich einige Logik mit meiner Umgebungsvariablen verwenden kann, aber ich möchte dies vermeiden.

Dank

Antwort

1

in Umgebungen/development.rb

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

in Umgebungen/production.rb

config.action_mailer.default_url_options = { :host => "www.xyu.at" } 

und Anwendungstests mit rspec-E-Mail :)

+0

nur zu beachten, ist eine einfache Möglichkeit, dies zu tun, eine Yaml Config-Datei verwenden und dann nur Benutzer default_url_o ptions = yml [ENV] – Ori

2

definiere ich eine Konstante 'HOST' in meinem environment.rb, dass meine Gastgeber setzt. Alternativ können Sie request.host oder request.domain verwenden.

+0

Put HOST = "localhost: 3000" Ihre Umgebungen/development.rb und die Live in Umgebungen/production.rb dh HOST = "www.myhost.com" –