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

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

ただいまの
回答率

89.97%

Railsに関しての質問です

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,221

hyo-1990

score 5

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

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

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).deliver_now
    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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/01/09 12: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でこのエラーになってしまいました。

    初心者なものでどうかよろしくお願い致します。

    キャンセル

  • 2016/01/09 13:04

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

    キャンセル

  • 2016/01/09 13:58

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

    キャンセル

  • 2016/01/09 14:53

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

    キャンセル

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

  • ただいまの回答率 89.97%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる