たなか@備忘録

たなか@備忘録

最近の記事

複合インデックス

add_indexメソッドが生成するインデックス名が作られる手順 "index_"、テーブル名、”_on_"を連結する 単独のインデックスがあればカラム名を追加する 複合インデックスであれば、すべてのカラム名を"_and_"で連結して追加する インデックス名の長さには制限(PostgreSQLでは63バイト)があるので注意が必要になる。 複合インデックスの組み合わせについて X、Y、Zの3つのカラムに対して複合インデックスを設定する場合は以下のように複合インデック

    • EC2インスタンス作成・ログイン

      はじめに業務などでEC2インスタンスを作成する機会があったので作成方法を調べてみた。 EC2インスタンス作成を頻繁に行うことはないので個人の学習用としても本記事にまとめてみたいと思います。 EC2インスタンス作成手順前提 EC2管理者権限もつIAMユーザーでログインする リージョンは「東京」とする 無料枠での作成とする ログイン端末はMacとする 検索窓に「EC2」と入力し検索する 2.左ペインから「インスタンス」を押下 3.「インスタンスを起動」を押下

      • シンボル

        書式:シンボル名 任意の文字列と一対一に対応するオブジェクト 文字列の代用もできるが文字列と同じ振る舞いをするとは限らない 同じ内容のシンボルは必ず同一オブジェクト 例 :symbolp "abc" == "abc" #=> truep "abc".equal?("abc") #=> falsep :abc == :abc #=> truep :abc.equal?(:abc) #=> true ←同値ならば同一 文字列は同一でも異なるオブジェクトとなる。 シンボ

        • ヒアドキュメントとは

          ヒアドキュメントとは複数行にわたる長い文字列を作成する場合などに利用する行指向文字列リテラルのこと。 いつ使うのか複数行に渡る長い文字列をきれいに書きたい場合 シェルスクリプトに埋め込みたいとき 使い方<<識別子1行目2行目3行目識別子 識別子は慣習として全て大文字を使う デフォルトでは式展開は有効 式展開を無効にするには識別子をシングルクオートで囲む 識別子をダブルクオートで囲むと式展開は有効(デフォルトと同じ) バックスラッシュつきの文字列の扱いも上記シ

          単一テーブル継承とは

          単一テーブル継承 (single table inheritance:STI)とはオブジェクト指向プログラミングの継承概念をリレーショナルデータベースで擬似的に実現する方法。Railsではtypeカラム(またはモデルクラスのinheritance_column属性に指定されたカラム)にクラス名を記載することで単一継承テーブルを実現している。 class Address < ApplicationRecordend class HomeAddress < Addressen

          単一テーブル継承とは

          Rails ビューの整理整頓 プレゼンターの利用

          ApplicationHelperモジュールに定義されたメソッドはグローバルに定義される「app/helpers」ディレクトリ配下に定義されたヘルパーメソッドはアプリケーション全てのERBテンプレートから呼び出し可能なメソッドとして定義される。名前が衝突しないように管理する必要が生じる。ERBテンプレートを整理整頓が目的であれば別の方法も考えられる。 対処方法を以下に挙げます。 モデルクラスのインスタンスメソッドとして定義する ModelPresenterクラスを定義する

          Rails ビューの整理整頓 プレゼンターの利用

          Rails 委譲(delegation) delegateについて

          メソッドチェーンをたくさん書くことなく実装できる。 書き方の例は以下の通り。 delegate :method_name, to: :associtation 具体例は以下の通り。 Userモデルにログイン情報があり、関連する名前などはProfileモデルにあるとした場合。 delegate を使った場合 class User < ApplicationRecord has_one :profile delegate :name, to: :profileend

          Rails 委譲(delegation) delegateについて