質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1043閲覧

Action mailer + rspecでホストのエラー

pecchan

総合スコア555

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/02 05:13

Railsチュートリアルの10章、Action mailerのテストをrspecで書いて実行したところ下記のエラーになりました。

text

1Failures: 2 1) UserMailer account_activation renders the headers 3 Failure/Error: <%= link_to "Activate", edit_account_activation_url(@user.activation_token, 4 ActionView::Template::Error: 5 Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

ホスト設定が正しくないのでしょうか?設定は一応してます。

エラーメッセージでググっても解決しないためこちらに質問しました。
環境はcloud9です。

ホストには、https://以降をセットしました。
/config/environments/development.rb

ruby

1config.action_mailer.delivery_method = :test 2host = '938acb907965411c8aff991db468afbe.vfs.cloud9.ap-northeast-1.amazonaws.com/' 3config.action_mailer.default_url_options = { host: host, protocol: 'https' } 4Rails.application.routes.default_url_options[:host] = host

config/routes.rb

ruby

1Rails.application.routes.draw do 2 resources :account_activations, only: [:edit] 3end

/spec/mailers/user_mailer_spec.rb

ruby

1require "rails_helper" 2RSpec.describe UserMailer, type: :mailer do 3 describe "account_activation" do 4 before do 5 @user = FactoryBot.create(:user) 6 @user.activation_token = User.new_token 7 @mail = UserMailer.account_activation(@user) 8 end 9 it "renders the headers" do 10 expect(@mail.subject).to eq("アカウント・アクティベーション") 11 end 12 end 13end

/app/mailers/user_mailer.rb

ruby

1class UserMailer < ApplicationMailer 2 3 4 def account_activation(user) 5 @user = user 6 7 mail to: @user.email, sbuject: "アカウント・アクティベーション" 8 end 9 10 11 def password_reset 12 @greeting = "Hi" 13 14 mail to: "to@example.org" 15 end 16end 17

原因が分かる方教えください。
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

/config/environments/development.rb
ではなく
/config/environments/test.rb
でした

投稿2020/05/02 06:53

pecchan

総合スコア555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問