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
原因が分かる方教えください。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。