tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

2022-11-01から1ヶ月間の記事一覧

【rails】中間テーブルの自動作成

多対多のリレーションを持つモデルの片方を作成する場合 パラメータにもう片方の モデル名+ids のパラメータ名で複数のidを持たせる。 そうすると、そのidと作成するモデル側のidを使って中間テーブルが自動的に作られる。 User has_many :groups, through: …

【Javascript】連想配列の空判定

// 空のオブジェクトを用意 const obj = {}; console.log( Object.keys(obj).length === 0 ); // true また、「key」の長さを取得して「0」であれば「0」は真偽値で「false」扱いとなるので、「!」で反転させることで判定することが可能です。 console.log(!…

【rails】バージョン設定

load_defaultsもnew_framework_defaults_x_xも指定しない場合はどの設定が使われているかわからない。 参考 qiita.com

serviceクラスについて

サービスクラスは原則1つの役割に徹するべき クラス名には動詞と目的語と「Service」を付ける 引数は出来る限りnewで渡してインスタンス化する 1つのサービスにpublicなメソッドは、原則1つにする 初期化したインスタンスはprivateのattr_readerで呼ぶ 切り…

【ruby】メソッド探索の順序

あるクラスのインスタンスメソッドを実行した場合以下のような探索順序になる。 自クラス → includeしたmodule → 継承元1 → 継承元2 *moduleは下に記述したものから探索される 参考 pikawaka.com

【Ruby】reqiureとinclude

・requireは外部ファイルやライブラリを読み込むのに使う ・includeはモジュールをクラス内で呼ぶために使う includeしたファイルに定義しているメソッドは呼び出し元のクラスでインスタンスメソッドとして利用することができる。 参考 pikawaka.com system.…

【ruby】$LOAD_PATH

ライブラリを検索するパスを格納している組み込み変数。 プログラムのどこからでも参照でき、グローバル変数と同様のスコープを持つ。 参考 system.blog.uuum.jp style.potepan.com

rails autoloader

標準でautoload_pathsに含まれるのは以下の6ディレクトリ app/controllers app/models app/helpers app/mailers app/controllers/concerns app/models/concerns 参考 qiita.com

単一テーブル継承

DBにある1つのテーブルを、複数のモデルで共有利用すること。 DBテーブル名と同じクラス(スーパークラス)を作成し、そのスーパークラスを継承するサブクラスを作成する。使用するカラム名はスーパークラス、サブクラスともに同じ。(同じテーブルに紐づく…

WebSocketとは

HTTPプロトコルでハンドシェイクしたのちコネクションを確立して専用のプロトコルで双方向通信を行う。 参考 qiita.com