@k12da (K Yoshida)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

The form contains 1 error. 登録フォームの名前の入力欄だけ出てこない。

登録フォームに名前の入力欄だけ出てこない

Railsチュートリアルの7.4.1 登録フォームの完成
のところで、ブラウザのSignupページからユーザーの登録をしようとしたところ、
以下のエラーメッセージが表示されました。

登録フォームに
nameと入力フォームが表示されるようにしたいです。

発生している問題・エラー

The form contains 1 error.
Name can't be blank

また、登録フォームは、email,パスワード、パスワード(再入力)の
フォームは表示されるのですが、nameだけ表示されません。

また、ブラウザの開発者ツールで確認した時に、nameのところだけ下記のようにHTML出力されています。

スクリーンショット 2022-06-19 15.44.58.png

ユーザー登録フォームのソースコード

/sample_app/app/views/users/new.html.erb

<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<div class="row">
  <div class="col-md-6 col-md-offset-3">
    <%= form_with(model: @user, local: true) do |f| %>
      <%= render 'shared/error_messages' %>
      <% f.label :name %>
      <% f.text_field :name, class: 'form-control' %>
      
      <%= f.label :email %>
      <%= f.email_field :email, class: 'form-control' %>

      <%= f.label :password %>
      <%= f.password_field :password, class: 'form-control' %>

      <%= f.label :password_confirmation, "Confirmation" %>
      <%= f.password_field :password_confirmation, class: 'form-control' %>
      
      <%= f.submit "Create my account", class: "btn btn-primary" %>
    <% end %>
  </div>
</div>

自分で試したこと

form_withなどで登録フォームを作成したときに、hidden_fieldか何かが生成されたと思ったのですが、そういった記載は見当たりませんでした。

0 likes

2Answer

new.html.erbの以下のコードを削除し、入れ直したら解決しました。
<%= render 'shared/error_messages' %>

(仕組みがわかる方いらっしゃいましたら、教えていただきたいです)

0Like

new.html.erbの以下のコードを削除し、入れ直したら解決しました。

どのコードか記載されていません。

フォームが表示されている部分のコードと、
されていない部分のコードを見比べてみてください。

違いが分かりますでしょうか。

- <% f.label :name %>
+ <%= f.label :name %>

- <% f.text_field :name, class: 'form-control' %>
+ <%= f.text_field :name, class: 'form-control' %>

仕組みは以下を参照してください。

0Like

Comments

  1. @k12da

    Questioner

    @syutorum001さん

    ありがとうございます!
    上記の通り修正したら成功しました!

Your answer might help someone💌