Rails 続き
devise_parameter_santizierメソッド
deviseで言うparamsと同じような役割を持つ。
新規登録やログインなどのリクエストから情報を取得できるようになっている。
.permitを使うとdeiseで定義されているストロングパラメーターに対し、自分で追加したカラムも含めて指定することができる。
devise_parameter_santizierはプライベートメソッド内で使用することができる。
application_controller.rbファイル
これは全てのコントローラーファイルの共通の情報を記述することができるようになっている。
user_signed_in?メソッド
gem 'devise'がインストールされているため使用できる。ログインできているかを判断するために使われる。
リダイレクト
リダイレクトとは本来受け取ったパスとは違うパスに転送すると言うこと。
例えばログインしていない状態である情報を見ようとした際に新規登録のページに遷移したりするのがあると思うが、それがリダイレクトと呼ばれるものになる。
unless?メソッド
unlessではログインしているユーザーではないかどうかを判断するために使うもの。
redirect_toメソッド
redirect_toではリダイレクト先を指定するために使う。redirect_to action: :アクション名 これでリダイレクト先になるアクションを指定する。
expectメソッド
before_actionのオプションとなるものと考えるといい。
expectは除外すると言う意味を持ち、before_actionで事前処理を行うがその処理を行わないアクションを指定するものになっている。
current_userメソッド
ログイン中のidを取得するために使う。
mergeメソッド
ハッシュを統合するときに使う。今回はツイートの情報を持つハッシュと,user_idを持つハッシュの2つをまとめることができる。
has_manyメソッド
一人で複数の投稿していることを表すことができる。
Twitterなどがこれを使うことが多い。
belongs_toメソッド
一つの投稿に一人のユーザーがいることを表すために使う。
current_user.id == @tweet.user_id
上記のif文で囲むことによってログインするときに表示するものと表示しないもので分けることができる。
orderメソッド
並び順を変えるメソッド。だいたい日付順に変えるのが主流。
インスタンス=モデル名.order("並び換えの基準となるカラム名 並び順")
並び順コマンド
ASC 古いものから新しいものの順にする
DESC 新しいものから古いものの順番にする
部分テンプレート
ホームページではヘッダーやフッターなどは同じものになっていることが多い。
ですが、全てのページで同じように記述するとコードが長くなってしまう。
なので1つのページに同じコードを書くことで書く手間をなくしていく。
_〇〇.html.erbと最初に_がついているものが共通のものになる。
renderメソッド
部分テンプレートの呼び出しの際に使うメソッド。
partialオプション
これはrenderメソッドのオプションで部分テンプレート名を記載すると呼び出すことができる。
例 partial: "sample"
localsオプション
部分テンプレートで変数を使えるようにできる。
locals: {post: "hello"}といった形にすると部分テンプレートでpostでhelloと出力できる。