2021年4月25日 学習内容

【昨日】

◯ 学習等なし。趣味の自転車で札幌〜余市の往復。 

【今日】

◯ オリジナルアプリのユーザー管理機能(新規登録、ログイン、ログアウト)完成。(就活しながらなので中々進まない)

◯ 新たにチャレンジしたり手こずったことは下記の点

 ① ユーザー新規登録ページにて、エラーメッセージを任意の場所に表示させる。 

  ・ 上部のform_with直下に次の記述

     <% if @user.errors.any? %>
     <% end %>
  ・ また、各フォームの下に次の記述(下記はメールアドレスを例にしている)
     <% if @user.errors.include?(:email) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:email).first %>
     <% end %>
  ② エラーメッセージの日本語化
   ・ まずはGemに次の記述 gem 'i18n'

   ・ ターミナルでbundle install

   ・ config/application.rbに次の記述

     config.i18n.default_locale = :ja

   ・ config/locales/devise.ja.ymlファイルを作り、そのファイルに次の内容をコピー。  

     https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

   ・ 上記だけでは足りない部分は、config/locales/ja.ymlファイルを作成し、次の記述

       ja:
         attributes:
          user:
           username: ユーザー名
           name: 名前
           birthday: 生年月日

   ③ パスワードの最低文字数を設定する

    ・ userモデルに次の記述

      devise: varidatable, password_length 8..128

      これで最低8文字を入力させるパスワード設定入力設定になる(デフォルトは6文字)

   ④ ログインのエラーメッセージ

     ・ 新規登録と同様の記述ではエラ〜メッセージが表示されない。

     ・ そこで、deviseに格納されているflashメッセージを呼び出す処置をする。

     ・ app/views/layouts/_flash.html.erbファイルを作り、次の記述

       <% flash.each do |key, value| %>
        <%= content_tag(:p, value, class: "alert alert-#{key}") %>
       <% end %>

     ・ ログインページに上記部分テンプレートを呼ぶための記述

       <%= render partial: 'layouts/flash' %>

    ⑤ 結合テスト実行で発生したエラー

      ・ 結論は、rails webpacker:installで解決。

      ・ なお、webpacとは、webアプリを作成する際に必要となる様々なJavaScriptをひとまとめ

        に管理するツールで、webpackerというGemでwebpacをRails仕様にしてファイルやヘルパ

        ーメソッドが使えるようになる。