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と出力できる。