はじめに
form_withヘルバーを使った学習中に些細なミスでテストが通らなかったため、自戒のためにもここに記しておきます。
lavelの部分に注目
記述したform_withヘルパーのコードは次のとおりです。どこが間違っているかわかりますか、、、
<h1>ユーザー登録</h1>
<%= form_with model: @user, local: true do |f| %>
<div class="form-group">
<%= f.label :last_name %>
<%= f.text_field :last_name, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :first_name %>
<%= f.text_field :first_name, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :Password %>
<%= f.password_field :password, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation, class: 'form-control' %>
</div>
はい、
<%= f.label :Password %>
ここです。
なぜか大文字になっています。正しくは小文字です。ウェブ上で、入力欄の名前を表示するのだから、大文字にすべき、とコードを書いた瞬間に思っていたのですね。(じゃあどうして他のは大文字じゃないんだ?)
f.label
の箇所はf.text_field :password
に対応するlabel要素を出力するので、同じ文字である必要があります。
最後に
余談ですが、最初はtext_fieldでemailもpasswordの箇所も記述していました。ズボラです。
読んでくださって、ありがとうございます。
誰かの学習が前進すると、うれしいかぎりです。
参考文献
・現場で使えるRuby on Rails5速修実践ガイド pp 104