Rails 6.0でアプリを開発 基本の流れ⑤ ユーザー登録ページ
UserのプロフィールでActivestorageを使用して画像を取り込む前段階としてユーザー登録ページの作成についてメモ。
1.debug情報の追加
開発環境のみにまずはdebug情報が表示するように記述。また、表示を成形するためにスタイルシートを編集。
※box-sizingがうまくいかなかったのでひとまずborderで囲んでおきました。
2.Userリソースの追加
3.Userを表示するためのviewを作成
①users_controller.rbにshowアクションを追加
②userのインスタンス変数@userを設定しfindメソッドでuserを取り出し
※params[:id]がユーザーのidに置き換えられる。
③いったん userの情報を表示できるかshow.html.erb内を記述
※名前のみ表示。同時にassideタグでサイドバーの設定をしておく
④スタイルシートでサイドバーの表示を調整
4.登録フォームの作成
①newアクションにユーザーのオブジェクトを生成
②form_forを使用して登録フォームを作成
※offsetのつけ方がbootstrap3とbootstrap4で違うので注意
5.ユーザーをDBに保存できるようにする
createアクションの生成とストロングパラメータのセット
※DBとやり取りするアクションはストロングパラメータ使う
6.エラーメッセージの表示設定
①ユーザー登録時にエラーがあった場合ファイルを呼び出す
②呼び出すファイルを作成
※このエラーメッセージは他のviewでも使用予定なのでsharedディレクトリを作成してそちらにパーシャルを入れておく。
③エラーメッセージ用のスタイルを設定
④エラーが日本語で表示されるように日本語化
Gemfileの追加
config/application.rbで設定
7.統合テストで登録時のチェック
$ rails g integration_test users_signup
①登録失敗時のテスト
②signup_pathに対して送信するように設定
8.登録情報を送信した際の挙動(飛ばすページの設定)
※成功でshowページへ失敗で、そのままnewページ
9.成功時にフラッシュメッセージを表示するためのレイアウトを追加
※content_tagを使用
10.DBを新たに使用するため中身をいったんリセット
$ rails db:migrate:reset
エラー発生
rails db:drop:_unsafeをして、rails db:migrateをして解決
11.有効なユーザー登録に対するテスト
※フラッシュの有無もチェックしておく
12.本番環境でSSLを使用できるようにする
※herokuのSSLに便乗する方法
①下記の行のコメントを外す
②puma.rbを下記のように書き換える
③procfileを作成し、herokuにpuma.rbを見に行かせる
以上で、user登録のフォームは設定できた。同時に画像も設定できるように次回Activestorageを使用する
参考にさせていただいたサイト
Railsのバリデーションエラーのメッセージの日本語化 - Qiita
Rails tips: ビューの`content_tag`のあまり知られていないオプション(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
Deploying Rails Applications with the Puma Web Server | Heroku Dev Center