学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails6.0 | 民泊サイトの構築(改良版)| 10 | パスワード確認の省略 | for MacOSX



| 09 | Gmailの設定 <<  [ホーム] >> | 11 | ダッシュボードの追加


ユーザー編集ページを更新してパスワードのフィールドを減らします。
ユーザ情報を更新する際に今までは現在のパスワードを入力していましたが、今回の変更によりパスワード入力を省略できるようにします。


「app\controllers」フォルダに「registrations_controller.rb」ファイルを新規作成します。


app\controllers\registrations_controller.rb(新規作成したファイル)

class RegistrationsController < Devise::RegistrationsController
    protected
    def update_resource(resource, params)
        resource.update_without_password(params)
    end
end



「config\routes.rb」ファイルの記述を以下のように追加更新します。


追加更新 config\routes.rb(6行目)

  devise_for :users, 
              path: '', 
              path_names: {sign_up: 'register', sign_in: 'login', edit: 'profile', sign_out: 'logout'},
              controllers: {registrations: 'registrations'}



config\routes.rb

Rails.application.routes.draw do

  # ルートを app\views\pages\home.html.erb に設定
  root 'pages#home'

  devise_for :users, 
              path: '', 
              path_names: {sign_up: 'register', sign_in: 'login', edit: 'profile', sign_out: 'logout'},
              controllers: {registrations: 'registrations'}

  get 'pages/home'
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end



記述更新 app\views\devise\registrations\edit.html.erb

<br/>
<br/>
<div class="row">
  <div class="col-sm-6" style="margin:0 auto;">
    <div class="card text-center">
      <h4 class="card-header text-center bg-warning"><font style="font-size: 1.4rem"><b>登録情報の編集</font> <font style="font-size: 1.1rem">Edit registration information</b></font></h4>
      <div class="card-body">
        <br/>
        <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
          <%= render "devise/shared/error_messages", resource: resource %>
          <div class="form-group">
            <%= f.text_field :full_name, autofocus: true, placeholder: "氏名 full name", class: "form-control" %>
          </div>
          <div class="form-group">
            <%= f.email_field :email, autofocus: true, placeholder: "メールアドレス mail address", class: "form-control" %>
          </div>
          <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %>
            <div>現在、次の確認を待っています:<%= resource.unconfirmed_email %></div>
          <% end %>
          <br/>
          <div class="form-group">
            <%= f.password_field :password, autocomplete: "off", placeholder: "変更するパスワード Password to change", class: "form-control" %>
          </div>
          <div class="form-group">
            <%= f.password_field :password_confirmation, autocomplete: "off", placeholder: "変更するパスワード(もう一度) Change password again", class: "form-control" %>
          </div> 
          <br/>
          <br/>
          <div class="actions">
            <%= f.submit "更新する update", class: "btn btn-warning btn-block" %>
          </div>
        <% end %>
        <%= link_to "戻る back", :back, class: "btn btn-outline-info btn-block" %>
      </div>
    </div>      
  </div>
</div>
<br/>



ブラウザ確認
http://localhost:3000/profile

パスワードフィールドの省略
パスワードフィールドの省略



↓↓クリックして頂けると励みになります。


| 09 | Gmailの設定 <<  [ホーム] >> | 11 | ダッシュボードの追加