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

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

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

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

Q&A

解決済

1回答

2564閲覧

Railsに関しての質問です

hyo-1990

総合スコア7

Ruby on Rails

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

0グッド

0クリップ

投稿2016/01/08 15:30

どうかご助力お願い致します

ERROR["test_account_activation", UserMailerTest, 2015-12-17 15:57:08 0000]
test_account_activation#UserMailerTest (1450367828.76s)
SyntaxError: SyntaxError: (erb):11: syntax
error, unexpected tLABEL
(erb):13: syntax error, unexpected ':', expecting ')'
email: duchess@example.gov
^
(erb):14: syntax error, unexpected ':', expecting ')'
password_digest: <%= User.digest('password') ...
^
(erb):21: syntax error, unexpected tCONSTANT, expecting ')'
password_digest: <%= User.digest('password') ).to_s); ...
^
(erb):25: syntax error, unexpected tLABEL
(erb):27: syntax error, unexpected ':', expecting ')'
email: boss@example.gov
^
(erb):28: syntax error, unexpected ':', expecting ')'
password_digest: <%= User.digest('password') ...
^
(erb):28: unterminated string meets end of file
(erb):28: syntax error, unexpected end-of-input, expecting ')'
<% end ).to_s); _erbout.force_encoding(ENCODING)
^

このエラー文で、該当箇所はおそらく、

require 'test_helper'

class UserMailerTest < ActionMailer::TestCase

test "account_activation" do
user = users(:michael)
user.activation_token = User.new_token
mail = UserMailer.account_activation(user)
assert_equal "Account activation", mail.subject
assert_equal [user.email], mail.to
assert_equal ["noreply@example.com"],mail.from
assert_match user.name,mail.body.encoded
assert_match user.activation_token,mail.body.encoded
assert_match CGI::escape(user.email),mail.body.encoded
end
end

ここになるはずなのですが、どうしてもエラー箇所がわかりません。
どうかご回答お願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

mailが送信されていないのでrenderする前のテンプレートの内容がbodyにある用に見えます。
deliver_nowを追加したら動きませんか?

ruby

1require 'test_helper' 2 3class UserMailerTest < ActionMailer::TestCase 4 test "account_activation" do 5 user = users(:michael) 6 user.activation_token = User.new_token 7 mail = UserMailer.account_activation(user).deliver_now 8 assert_equal "Account activation", mail.subject 9 assert_equal [user.email], mail.to 10 assert_equal ["noreply@example.com"],mail.from 11 assert_match user.name,mail.body.encoded 12 assert_match user.activation_token,mail.body.encoded 13 assert_match CGI::escape(user.email),mail.body.encoded 14 end 15end

投稿2016/01/08 21:00

jinco

総合スコア432

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

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

hyo-1990

2016/01/09 03:25

ご返信ありがとうございます。 ご指定いただいたようにdeliver_nowなどを追加してみましたが、エラーは変わりませんでした´д` ; Railsチュートリアルという教材を進めているのですが、その該当箇所を記載致します。 http://railstutorial.jp/chapters/account_activation_password_reset?version=4.2#cha-account_activation_and_password_reset 10.1.2 AccountActivationsメイラーメソッド、リスト10.16まではなんとか理解しながら進めていたのですが、リスト10.17~リスト10.20でこのエラーになってしまいました。 初心者なものでどうかよろしくお願い致します。
jinco

2016/01/09 04:04

mail送信に使っているテンプレートの中身も見せてもらえますでしょうか? こっちでなにかtypo等があるのかもしれませんね。 app/views/user_mailer/account_activation.text.erb のような名前だと思います。
hyo-1990

2016/01/09 04:58

ご指摘いただいた箇所を再度入念にやり直してみたところ、なんとかエラーが出ず進められました。 お手数おかけしました。 ご丁寧にどうもありがとうございました。
jinco

2016/01/09 05:53

直した部分を質問の回答として投稿しておくと、次に同じエラーになった人が助かりますよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問