私の外部記憶装置

ただの覚え書きです。ちょこちょこ加筆・修正しています。

Rails

【Rails】N+1問題

概要 対応 基本の書き方(メソッドの使い分け) 1)eager_load 2)preload 3)includes 4)with_attached_* 関連付けが深い場合の書き方 書き方例(モジュールを使う場合) 参考 概要 「関連付けされたデータ」を読み込む時に発生する問題 例えば、「N個…

【Rails】セレクトボックス/ドロップダウンリスト(collection_select, select, select_tag)

概要 各ヘルパーメソッドの使い方 単体で使えるもの(⭐️書く時はこれ) collection_select select 2種類の組合せが必要なもの select_tag(セレクトタグを生成) options_for_select(オプションタグを生成) options_from_collection_for_select(オプショ…

【Rails】リンク、画像付きリンク(link_to, image_tag)

link_to image_tag 参考 link_to link_to < ActionView::Helpers::UrlHelper (v6.1) link_to < Action View ヘルパー - Railsガイド (v7.0) 現場Rails ⭐️書き方(色々な書き方がある。上記を参照) (1)基本の書き方 link_to(表示, URL, a要素の属性など)…

【Rails】パーシャルのレンダリング(render)

書き方 基本 ローカル変数への対応 パーシャルの集合を表示(eachメソッドを使わない方法) 参考(最新版) 書き方 4.1 パーシャルをレンダリングする < Action View の概要 - Railsガイド(v7.1) ActionView::PartialRenderer (v7.1) render < ActionContr…

【Rails, gem】slim

概要 書き方(基本) 書き方(詳細) 行の指示記号 テキスト | 注意点(|) 制御コード - 出力 = コメント その他(行の指示記号) HTMLタグ インラインタグ テキストコンテンツ 動的コンテンツ (= と ==) その他(HTMLタグ) 属性 属性の囲み Ruby コードを…

【Rails】クロスサイトスクリプティング(XSS)とその対策(🚧作成中)

概要 書き方 サニタイズの書き方 エスケープの書き方 その他のエスケープのメソッド 参考(最新版) 概要 クロスサイトスクリプティング(XSS)とは: インジェクション(Webアプリに悪質なコードやパラメータを導入して、そのときのセキュリティ権限で実行…

【Rails】権限昇格とその対策

概要 対策例 参考(最新版) 概要 権限昇格とは:URL直接入力で、アクセス権のないページに到達できること 5.6 権限昇格 < Rails セキュリティガイド - Railsガイド 対策:クエリでアクセス権を設定し、各アクションで「操作できるデータ」を制限する 対策例…

【Rails】SQLインジェクションとその対策

概要 書き方(対策) 参考(最新版) 概要 SQLインジェクションとは: インジェクション(Webアプリに悪質なコードやパラメータを導入して、そのときのセキュリティ権限で実行させること)の1種 Webアプリのパラメータを操作してデータベースクエリに影響を…

【Rails】ストロングパラメータ

概要 書き方 参考(最新版) 概要 フォームからの入力を更新する時に、意図しない項目の更新を防ぐフィルタ paramsから項目を選別する 書き方 7.3.2 Strong Parametersを使う < Rails をはじめよう - Railsガイド 4.6 Strong Parameters < Action Controller…

【Rails】ActiveRecord::Relation について(🚧作成中)

クエリの返り値としてのRelation 参考 クエリの返り値としてのRelation 「whereメソッド」や「collectionメソッド(関連付け)」の返り値 【Rails】クエリ:where(抽出条件を指定する検索メソッド) 【Rails】クエリ:カラム名・テーブル名(関連付け)によ…

【Rails】クエリ:カラム名・テーブル名(関連付け)によるデータ取得

概要 注意点 書き方例 カラム名による読み書き テーブル名によるデータ取得 「関連付け」種類による返り値の違い 「関連付け」で使える、その他のメソッド has_many :through関連付けで、中間テーブルを書かない方法 概要 モデルのオブジェクト.カラム名で、…

【Rails】クエリ:find, find_by, take, first 等(単一オブジェクトを取出す検索メソッド)

概要 find テーブルで複合主キーを使っている場合 find_by, find_by! ✅条件が複数の場合(find_by) take, take! first, first! 類似のメソッド 参考(最新版) 概要 データベースからオブジェクトを取り出すための「検索メソッド」の内、単一のオブジェクト…

【Rails】クエリ:where(抽出条件を指定する検索メソッド)

概要 注意点 条件を与える方法3種 ①条件を文字列だけで表す ②条件を配列で表す LIKEを使う場合 ③条件でハッシュを使う 等値条件 ✅条件が複数の場合(where(ハッシュ)) 範囲条件 サブセット条件 メソッドを使った条件指定の方法 NOT条件 OR条件 AND条件 テ…

【Rails】スコープ

概要 書き方 基本の書き方 応用の書き方① 引数がある場合 応用の書き方② 条件文を使う場合 もっと応用 参考(最新版) 概要 よく利用するクエリ条件をメソッドとして利用できる機能 モデル内で定義する 書き方 Active Record クエリインターフェイス - Rails…

【Rails】params

概要 詳細 params ハッシュでアクセスできるパラメータ 「クエリ文字列」と「POSTデータ」 ①クエリ文字列 ②POSTデータ JSON形式のパラメータ ルーティングで定義されるその他の値パラメータ(idなど) リクエストに関連するパラメータ 書き方 基本 リクエス…