LoginSignup
0
0

More than 3 years have passed since last update.

TECH  DAY 5

Posted at

勉強した項目: Ruby、Rails、中間試験
時間: 10:15
内容:

*学習アウトプットです。なにぶん間違いなんかもあります。気をつけますがその際はご指摘いただけますと幸いです*

[アソシエーション]

アソシエーションとはモデル間の関連付けを管理する機能のこと、これによりモデルをまたいだデータの呼び出しをより簡単に行うことができる
条件を2つ満たす必要がある
•モデルクラスにhas_manyやbelongs_toなどの定義がされている
•所属する側のテーブルに所属するクラス名_idというカラムがある

1からみた条件  has_many 1 対 多
多からみた条件  belong_to 多はどこか必ず所属している be lonng to~ 「〜に属する」

[n+1問題]

モデルを利用してデータベースの情報にアクセスする際にはSQLが発行される
このSQLが発行されるたびにデータベースに対して通信が走るので、SQLが大量に発行されれば処理が重くなる
→SQLを発行する•••データベースからデータを抽出する操作

n+1問題は、データベースを呼び出す毎に大量のSQLが発行される問題

[ includesメソッド]

n+1問題を解消することができる。 書き方は、includes(:モデル名)
引数で、関連モデルをシンボル型(接頭に:がつく型)で指定

[deleteメソッド]

情報の削除を行う際に利用するHTTPメソッド

[rake routes]

現在定義しているルーティングを表示してくれるコマンド、ターミナルにて指定

項目名 意味
Prefix 「Prefix」はルーティングの名前を表しています。「Prefix」は設定を行わなくても、自動的に割り当てられますが、自ら設定することもできます。
Verb 「Verb」はHTTPメソッドを表しています。右側に表示されているパスにどのHTTPメソッドでアクセスするかを示しています。
URI Pattern 「URI Pattern」はルーティングのパスを表しています。このパスにアクセスされた際に、指定のコントローラとアクションで処理が行われます。
Controller#Action 「Controller#Action」は指定したパスにアクセスした際に処理が行われるコントローラとアクションを表しています。#以前がコントローラ名、#以後がアクション名を示しています。

[destroyメソッド]

ActiveRecordメソッドのうちの一つで、インスタンスに対してそのレコードを削除する際に使うことができる

[後置if]

最後のendを省略してif文を処理の後方に配置する書き方
elsif, elseにあたる条件分岐が無く、かつ処理が一行で完結する場合に用いる

[patchメソッド]

HTTPリクエストにはgetpostdeleteメソッドがあることが、patchメソッドは情報の更新を行う際に使用する

[HTTPリクエスト]

Railsでは4種類のHTTPリクエストのメソッドがある

メソッド 役割
get サーバーからブラウザに情報を返す。単にウェブサイトを閲覧する際にはこのメソッドが利用されている。
post ブラウザからサーバーに情報を送信し、サーバーに情報を保存する。情報の登録などの際に、サーバーに情報を送信するために利用される。
delete ブラウザからサーバーに情報を送信し、サーバーの情報を削除する。アカウントの削除などの際に、サーバー内のデータを削除するために利用される。
patch ブラウザからサーバーに情報を送信し、サーバー内の情報を置き換える。登録情報の更新などの際に、サーバー内のデータを更新するために利用される。
put メソッド名は違うが、patchと同じ役割を持っている。rails3まではputを使っていたが、rails4からはpatchに移行したためカリキュラム内では使用しない。

[updateメソッド]

ActiveRecordメソッドのうちの一つである。
 updateメソッドはモデルのインスタンスに対して使用することで、引数内の情報にレコードを更新することができる

[Railsのリソースの7つのアクション]

7つの基本アクションへのリクエストがデフォルトで設定されている
 このリクエストは、routes.rbresources :ルーティングを設定したいコントローラ名と書くだけで反映させることが可能である

Railsのリソースの7つのアクション 役割
index リソースの一覧を表示する。
show リソースの内容を表示する。
new リソースを追加する。
create リソースを追加し、作成する。
edit リソースを更新するためのフォームを表示する。
update リソースを更新する。
destroy リソースを削除する。

[resourcesメソッド]

コントローラの7つのアクションで記載した7つのアクション名に対してのルーティングを自動で生成するメソッド
リソース•••テーブルの中の1つのデータ

 Rails.application.routes.draw do
  resources :models
end

[ルーティングのネスト]

ネスト•••別名、入れ子構造
ある記述の中に入れ子構造で別の記述をする方法

ルーティングでは、あるコントローラへのルーティングの記述の中に、別のコントローラへのルーティングを記述すること
 doend で挟むことで、ネストさせる。

ネストさせる一番の理由はアソシエーション先のレコードのidparamsに追加してコントローラに送るため

[部分テンプレート]

同じHTML構造の部分を共通化することによって、無駄なくビューファイルを作成する
この共通化された部分のこと
* 部分テンプレートのファイル名は必ず [ _ ] から始まる

[renderメソッド]

部分テンプレートを呼び出す際に利用するメソッド

[render partialオプション]

renderメソッド:partialというオプションをつけることで、
明示的に部分テンプレート名を指定し、部分テンプレートを表示することができる

  render partial: "sample"

[render localsオプション]

renderメソッドにlocalsというオプションを用いると部分テンプレート内でその変数を使える

render partial: "sample", locals: { app: "oboeta?" }
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0