RailsのActionMailerでメール文中にアプリケーションのURLを記述するときの良い方法を教えてください。

例えばアプリケーションのトップのURLを文中に記述したいので、メーラクラスに helper :application を記述して、テンプレート内で <%= root_url %> と書くと、「Missing host to link to! Please provide :host parameter or set default_url_options[:host] 」とエラーになります。しょうがないのでメーラクラスの deliver_* メソッドに root_url を引数として追加して、コントローラで生成した root_url を渡すようにしましたが、これだと URL の数だけ引数で渡す羽目になります。きっと、もっとスマートな方法がありそうなので教えていただけませんでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/05/09 17:45:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:sterwars22 No.1

回答回数363ベストアンサー獲得回数0

ポイント60pt

URL表記の注意

http://blog.s21g.com/articles/530

id:nuna

ありがとうございます。

読んでみましたが、そのやり方の場合、hostを明示的に指定しないといけないんですよね。コードの記述場所が model なので実行 host の情報が得られないのは当たり前といえば当たり前ですが。

そう考えてみると ActionMailer の view で host の情報が自動的に得られず、コントローラから渡すしかないのも、作りとしては正しいのかもしれないですね……

2008/05/07 11:04:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません