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

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

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

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

Q&A

解決済

3回答

5074閲覧

rails チュートリアル8章の終わりでrails tを実行したら謎のエラーが出た

yutakanagashima

総合スコア14

Ruby on Rails

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

0グッド

0クリップ

投稿2018/05/08 11:01

編集2018/05/08 11:05

前提・実現したいこと

rails チュートリアルの8章の終わりくらいで、rails t を実行すると以下のようなエラーが出ました。
解決方法を具体的に(初心者です)教えていただけますか??

users_signup_test.rb のコードを以下に貼りました。

発生している問題・エラーメッセージ

Error:
UsersSignupTest#test_invalid_signup_information:
Nokogiri::CSS::SyntaxError: unexpected '<' after '.'
test/integration/users_signup_test.rb:15:in `block in class:UsersSignupTest'

該当のソースコード

require 'test_helper'

class UsersSignupTest < ActionDispatch::IntegrationTest

test "invalid signup information" do
get signup_path
assert_no_difference 'User.count' do
post users_path, params: { user: { name: "",
email: "user@invalid",
password: "foo",
password_confirmation: "bar" } }
end
assert_template 'users/new'
assert_select 'div#<CSS id for error explanation>'
assert_select 'div.<CSS class for field with error>'

end

test "valid signup information" do
get signup_path
assert_difference 'User.count', 1 do
post users_path, params: { user: { name: "Example User",
email: "user@example.com",
password: "password",
password_confirmation: "password" } }
end
follow_redirect!
assert_template 'users/show'
assert_not flash.empty?
end
end

試したこと

users_signup_test.rb のどこかがおかしいのかな〜と

色々とググりましたがわからずです・・・。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

ベストアンサー

ruby

1assert_select 'div#<CSS id for error explanation>' 2assert_select 'div.<CSS class for field with error>'

ここで文法エラーになってます。
cssセレクタの記述がおかしいです。

<CSS class for field with error> これは「エラーのcssクラス名をここに書いてください」的な意味合いなので、実際のクラス名で置き換える必要があります。 正しい文法だと`div.error-field`みたいな感じになります。

投稿2018/05/08 12:58

set0gut1

総合スコア2413

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

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

yutakanagashima

2018/05/09 02:34

ありがとうございます。チュートリアル5章にて、その部分の記述に関するコードを変更するのを忘れていたようでした。無事エラーは出なくなりました。またよろしくお願いします。
set0gut1

2018/05/09 02:37

おめでとうございます!
guest

0

私も同じところで詰まったのでこれから学習される方の参考に、実際のクラス名で置き換えた例を記載しておきます。

(置き換え前)

Ruby

1assert_select 'div#<CSS id for error explanation>' 2assert_select 'div.<CSS class for field with error>'

(置き換え後)

Ruby

1assert_select 'div#error_explanation' 2assert_select 'div.field_with_errors'

投稿2020/07/08 04:59

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

Nokogiri::CSS::SyntaxError: unexpected '<' after '.'

とのことなので,CSS の記述が間違っている(. のあとに < がある)のではないでしょうか。

投稿2018/05/08 12:55

scivola

総合スコア2108

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

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

yutakanagashima

2018/05/09 02:34

ありがとうございます。無事該当部分を書き換えてうまくいきました。またご指導よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問