自分の手で未来を創るーlav0

自分のために、誰かのために、今ここにないもの、もっと良くしたいもの、何でも自分の手で創っていく。そして、作ったものを公開していきます

Rails 6.0でアプリを開発 基本の流れ⑤ ユーザー登録ページ

UserのプロフィールでActivestorageを使用して画像を取り込む前段階としてユーザー登録ページの作成についてメモ。

f:id:kslabo51:20200222234756j:plain

1.debug情報の追加

 

開発環境のみにまずはdebug情報が表示するように記述。また、表示を成形するためにスタイルシートを編集。

f:id:kslabo51:20200222224325p:plain

※box-sizingがうまくいかなかったのでひとまずborderで囲んでおきました。

2.Userリソースの追加

f:id:kslabo51:20200222224514p:plain



3.Userを表示するためのviewを作成

①users_controller.rbにshowアクションを追加

 

②userのインスタンス変数@userを設定しfindメソッドでuserを取り出し

f:id:kslabo51:20200222225218p:plain

※params[:id]がユーザーのidに置き換えられる。

 

③いったん userの情報を表示できるかshow.html.erb内を記述

f:id:kslabo51:20200222225421p:plain

※名前のみ表示。同時にassideタグでサイドバーの設定をしておく

 

スタイルシートでサイドバーの表示を調整

f:id:kslabo51:20200222225709p:plain

 

4.登録フォームの作成

①newアクションにユーザーのオブジェクトを生成

f:id:kslabo51:20200222225929p:plain

 

②form_forを使用して登録フォームを作成

f:id:kslabo51:20200222230104p:plain

※offsetのつけ方がbootstrap3とbootstrap4で違うので注意

 

5.ユーザーをDBに保存できるようにする

createアクションの生成とストロングパラメータのセット

f:id:kslabo51:20200222230358p:plain

※DBとやり取りするアクションはストロングパラメータ使う

 

6.エラーメッセージの表示設定

①ユーザー登録時にエラーがあった場合ファイルを呼び出す 

f:id:kslabo51:20200222230608p:plain

 

②呼び出すファイルを作成

f:id:kslabo51:20200222230952p:plain

※このエラーメッセージは他のviewでも使用予定なのでsharedディレクトリを作成してそちらにパーシャルを入れておく。

 

③エラーメッセージ用のスタイルを設定

f:id:kslabo51:20200222231041p:plain

 

④エラーが日本語で表示されるように日本語化

Gemfileの追加

f:id:kslabo51:20200222231140p:plain

config/application.rbで設定

f:id:kslabo51:20200222231329p:plain

 

7.統合テストで登録時のチェック

$ rails g integration_test users_signup

 

①登録失敗時のテスト

f:id:kslabo51:20200222231801p:plain

 

②signup_pathに対して送信するように設定

f:id:kslabo51:20200222231839p:plain

f:id:kslabo51:20200222231937p:plain

 

8.登録情報を送信した際の挙動(飛ばすページの設定)

f:id:kslabo51:20200222232148p:plain

※成功でshowページへ失敗で、そのままnewページ

 

9.成功時にフラッシュメッセージを表示するためのレイアウトを追加

f:id:kslabo51:20200222232901p:plain

※content_tagを使用

 

10.DBを新たに使用するため中身をいったんリセット

$ rails db:migrate:reset

エラー発生

f:id:kslabo51:20200222233301p:plain

rails db:drop:_unsafeをして、rails db:migrateをして解決

 

11.有効なユーザー登録に対するテスト

f:id:kslabo51:20200222233750p:plain

※フラッシュの有無もチェックしておく

12.本番環境でSSLを使用できるようにする

※herokuのSSLに便乗する方法

①下記の行のコメントを外す

f:id:kslabo51:20200222233151p:plain

 

②puma.rbを下記のように書き換える

f:id:kslabo51:20200222233624p:plain

 

③procfileを作成し、herokuにpuma.rbを見に行かせる

f:id:kslabo51:20200222233705p:plain



以上で、user登録のフォームは設定できた。同時に画像も設定できるように次回Activestorageを使用する

 

参考にさせていただいたサイト

第7章 ユーザー登録 - Railsチュートリアル

Railsのバリデーションエラーのメッセージの日本語化 - Qiita

Rails tips: ビューの`content_tag`のあまり知られていないオプション(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

Deploying Rails Applications with the Puma Web Server | Heroku Dev Center