Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
33
Help us understand the problem. What is going on with this article?
@daik

RailsでMissing host to link to!が出たときに。model内でURL組み立てる場合の設定

More than 3 years have passed since last update.

前置き

あまりネットで検索しても困っている人を見つけられなかったので設計が変なきもするけれど、ちょっとだけはまったのでメモ

RUby2.4.1、Rails5.1で、ローカルのcentos(vagrant)でもHerokuでも発生。

対象エラー

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

ActionMailerのviewのなかで、modelのメソッドを読んでURLを設定するときに出た。

対策

routes.default_url_optionsに設定する必要がある。

/config/environments/development.rb
  host = 'samplehost'
  Rails.application.routes.default_url_options[:host] = host

production.rbにも同じように設定する必要があります。

関連

このエラーで検索すると環境設定ファイルに以下のように設定するとよいという記事がStack Overflowをはじめいろいろ出てくる。
ActionMailerのviewで直接URLを表示するときにはこれが必要。

/config/environments/development.rb
config.action_mailer.default_url_options = { host: "samplehost"}

その他

railsのconfig設定がどうなっているか、consoleなどで確認したいのだけれどどうしたらいいだろう?
rails cしてRails.applicationを閲覧すると巨大なオブジェクトはみえるけれど、action_mailer系は見えない。

33
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
daik
やっています。ユーザの問題を解決できるプロダクトをつくっていきたい。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
33
Help us understand the problem. What is going on with this article?