こんにちは、Nanayakuです。
form_forをform_withに変更する時、新規登録フォームや変更フォームの書き方は多くありますが、ログインフォームの書き方が少なかったので説明しようと思います。
目次
新規登録フォームをform_withへ
<%= form_for @user do |f| %> <%= f.label :name, '名前' , class: 'text-white' %> <%= f.text_field :name, placeholder: "最大15文字です", class: 'form-control' %> <%= f.label :email, 'メールアドレス' , class: 'text-white' %> <%= f.text_field :email, class: 'form-control' %> <%= f.label :password, 'パスワード' , class: 'text-white' %> <%= f.password_field :password,placeholder: "アルファベットと数字を", class: 'form-control' %> <%= f.label :password_confirmation, 'パスワード(確認)' , class: 'text-white' %> <%= f.password_field :password_confirmation,placeholder:"最低1文字使用した8~32文字", class: 'form-control' %> <%= f.submit "登録", class: 'btn-block btn-white vertical-btn' %> <% end %>
<%= form_with model: @user,url: users_path, local: true do |form| %> <%= form.label :name, '名前' , class: 'text-white'%> <%= form.text_field :name, placeholder: "最大15文字です", class: 'form-control' %> <%= form.label :email, 'メールアドレス' , class: 'text-white' %> <%= form.text_field :email, class: 'form-control' %> <%= form.label :password, 'パスワード' , class: 'text-white' %> <%= form.password_field :password,placeholder: "アルファベットと数字を", class: 'form-control' %> <%= form.label :password_confirmation, 'パスワード(確認)' , class: 'text-white' %> <%= form.password_field :password_confirmation,placeholder:"最低1文字使用した8~32文字", class: 'form-control' %> <%= form.submit "登録", class: 'btn-block btn-white vertical-btn' %> <% end %>
ログインフォームをform_withへ
<%= form_for :session, url: login_path do |f| %> <%= f.label :email, 'メールアドレス' %> <%= f.text_field :email %> <%= f.label :password, 'パスワード' %> <%= f.password_field :password %> <%= f.submit "ログインする" %> <% end %><br>
<%= form_with scope: :session, url: login_path, local: true do |form| %> <%= form.label :email, 'メールアドレス' %> <%= form.text_field :email %> <%= form.label :password, 'パスワード' %> <%= form.password_field :password %> <%= form.submit "ログインする" %> <% end %><br>
参考サイト
【Ruby】チュートリアルのform_forをform_withで書き換え (おまけ:capybaraでのテスト) - 196Log