#Railsチュートリアル 第7章
##7.1.1 デバッグとRails環境
debug(params)機能を使うとコントローラーのアクションやその他の情報を表示してくれて便利になる。
csccのミックスイン機能
@mixin box_sizing{
-moz-box-sizing:border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.debug_bump{
clear:both;
@include box-sizing
}
@mixinで複数の機能をまとめて、それを変数のように扱うことができる。呼び出す時は@includeで呼び出すことで機能が使える
##7.1.4 Gravatar画像とサイドバー
Gravatarは無料サービスで、プロフィール写真をアップロードして指定したメールアドレスと関連付けることができる。コードとして使うときはgravatar_forというヘルパーメソッドを使い画像をアドレスと紐付けることができる。
①gravatar_forヘルパーメソッドを作る
image_tagというヘルパーメソッドを使い
image_tag(gravatarのURL,alt:〇〇,class:"gravatar")とかく
これでヘルパーメソッドの定義が終わったので次に実際に使っていく
②ビューにGravatar画像と名前を載せる
使いたいビューに
<%= gravatar_for @user %>
<%= @user.name %>
を貼り付ける(@userを定義している必要あり)
@userが登録したメアドに紐づいている画像がgravatarにあればそれを表示させる。
##7.2.1 form_forを使用する
strong Parameters
def create
@user = User.new(params[:user])
end
params[:user]だけでは悪意のあるユーザーが他に別の情報を送信するかもしれない危険性がある。なのでこちらが許可した値のみを許可するためのコードが必要になる。
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
このコードを書くことで指定の値だけを許可して通すようになる。この結果コードは以下のようになる
def create
@user = User.new(user_params)
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
privateより下にあるコードは外部からの操作を受けないので安全である
##7.3.3 エラーメッセージ
ユーザー登録はできるようになったがもし登録に失敗しても現在では「失敗しました」などのメッセージが何も表示されないので保存が成功したのか失敗したのかユーザー側は判断ができない状態になっている。
保存がされなかった場合はエラーを表示するコードを書く
構造としてはエラーを表示するためのコードなどを_error_messageファイルに書いておき、それをrenderを使ってnew.htmlまで持ってきている。
##7.4 ユーザー登録成功
ユーザーの登録失敗の時にエラーを出せるようにしたが、次は登録が成功した時に成功のメッセージが出るようにする。
if @user.save
flash[:success]="Welcome to the Sample App!"
redirect_to @User
「もしユーザーが保存に成功したら"Welcome to the Sample App!"というフラッシュメッセージを出す」というコードがかけた。
しかしまずflashを定義していないのでflashを呼び出すも何もない。
なのでflashを定義する
<% flash.each do |message_type,message| %>
<div class="alert alert-<%= message_type %>"><%= message %></div%>
<% end %>
これでflashを定義できた。