Rails チュートリアル七章

ユーザー登録

7.1 ユーザー登録をする

7.1.1 デバックとRails環境
プロフィールは動的なページだからWebサイトレイアウトにデバック情報を追加

<%= debug(params)if Rails.env.development? %>

開発環境だけにデバック情報が表示される
Railsはテスト環境、開発環境、本番環境がある

@mixin box_sizing {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}

Sassのミックスイン機能でCSSのパッケージ化して複数の要素に適用する

7.1.2Usersリソース

resources :users

RESTフルで必要なアクションすべて使える
GET /users index users_path すべてのユーザーを一覧するページ
GET /users/1 show user_path(user) 特定のユーザーを表示するページ
GET /users/new new new_user_path ユーザーを新規作成するページ(ユーザー登録)
POST /users create users_path ユーザーを作成するアクション
GET /users/1/edit edit edit_user_path(user) id=1のユーザーを編集するページ
PATCH /users/1 update user_path(user) ユーザーを更新するアクション
DELETE /users/1 destroy user_path(user) ユーザーを削除するアクション

ユーザー情報を表示するための借りのビュー
show.html.erb

<%= @user.name %>, <%= @user.email %>

debuggerメソッド

直接的にデバックを見れる

Gravatar画像とサイドバー

プロフィール写真をアップロードして指定したメールアドレスと関連付ける
gravatar_for ヘルパーメソッドを使う

<%= gravatar_for @user %>  

hexdigestメソッド
メールアドレスをMD5でハッシュ化出来る

Digest::MD5::hexdigest(email.downcase)

gravatar_for メソッド定義

def gravatar_for(user)
   gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
   gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
   image_tag(gravatar_url, alt: user.name, class: "gravatar")
 end

7,2 ユーザー登録フォーム

7.2.1 form_withメソッド

フォームを作成するメソッド

 <%= form_with(model: @user, local: true) do |f| %>
     <%= f.label :name %>
     <%= f.text_field :name %>
   

7.2.2 フォームHTML

form_withメソッドは一つの変数をもつブロックを取ることを表す
fオブジェクトはHTMLフォームに対応するメソッドが呼びたされ@userを設定する

7.3.2 Strong Parameters

private
  params.require(:user).permit(:user, :email, :password,
  :password_confirmation)

必要なパラメータと許可されたパラメータを指定する

user_params パラメータを使いやすくするための慣習

privateキーワードで外部から使えなくする

7.3.3 エラーメッセージ

問題が起こったためユーザー登録が行われないためユーザーにわかりやすくエラーメッセージを伝える
errors.full_messageオブジェクトはエラーメッセージの配列を持っている

7.4 ユーザー登録成功

リダイレクトする

redirect_to @user

flash

二度目以降ページを表示しないためにflashメソッドを使う

flash[:success] = "Welcome to the Sample App!"




この記事が気に入ったらサポートをしてみませんか?