0

私のウェブサイトへのリンクを含むメールを送信しています。ローカルでテストし、スクリプトを別のホストに簡単に移動できるようにしたいと考えています。

今の私のメールでは、次のものを使用しています。

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

これはローカルでテストする場合に機能しますが、本番環境では明らかに失敗します。レール(またはルビー)に現在のホストが何であるかを検出させる簡単な方法はありますか?私はphpの$_SERVERのようなものを考えています。

環境変数を使用してロジックを使用できることに気付きましたが、これは避けたいと思います。

ありがとう

4

2 に答える 2

2

ホストを設定するenvironment.rbで定数「HOST」を定義します。あるいは、request.host または request.domain を使用できます。

于 2009-07-28T19:02:54.910 に答える
1

環境/development.rbで

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

環境内/ production.rb

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

rspec-emailでテストを使用します:)

于 2009-07-29T13:55:56.237 に答える