タグ

ブックマーク / zenn.dev/ebina_shohei (5)

  • 【Rails】ActiveRecord の遅延評価について

    概要 ActiveRecord の where や find などの検索系のメソッドが、 どのタイミングでデータベースへクエリを実行するかを解説します。 クエリを実行するタイミングを理解することで、N+1問題を防ぎ、パフォーマンスを考慮した実装ができるようになるので、ぜひ理解を深めていきましょう! ActiveRecord の遅延評価とは 例えば以下のコードの場合、クエリの実行タイミングは、1, 2, 3 のどの間になるでしょうか? class Api::V1::ArticlesController < Api::V1::BaseController def index puts "1" articles = Article.all puts "2" render json: { data: articles } puts "3" end Started GET "/api/v1/arti

    【Rails】ActiveRecord の遅延評価について
    YassLab
    YassLab 2024/04/22
    "whereやgroupといったコレクションを返すものもあれば、ActiveRecord::Relationインスタンスを返すものもあります。また、findやfirstなど1件のエンティティを検索するメソッドの場合、そのモデルの単一のインスタンスを返します"
  • 【Rails】class_attribute について

    概要 Rails の ActiveSupport の機能の一つである、 class_attribute について書きました! 定数、クラス変数との違いについて触れているので、参考になれば嬉しいです! クラスに属性をもたせることができる class Oya class_attribute(:some_attribute, default: 1) end Oya.some_attribute => 1

    【Rails】class_attribute について
    YassLab
    YassLab 2024/04/09
    “Rails の ActiveSupport の機能の一つである、 class_attribute について書きました! 定数、クラス変数との違いについて触れているので、参考になれば嬉しいです!”
  • 【Rails】delegate メソッドの解説

    概要 Rails の delegate メソッドについて解説します。 初見では「ん?」となるメソッドの1つですが、整理してみると簡単です。 delegate とは delegate メソッドは Rails の ActiveSupport の機能の1つです。 delegate には、「委任する」「委譲する」といった、委ねる的な意味があります。 例えば以下のコードがあるとします。 class User < ApplicationRecord has_one :profile, dependent: :destroy end class Profile < ApplicationRecord def aisatsu "私の名前は#{name}です。年齢は#{age}歳です。" end end

    【Rails】delegate メソッドの解説
    YassLab
    YassLab 2024/04/06
    "Railsのdelegateメソッドについて解説します。初見では「ん?」となるメソッドの1つですが、整理してみると簡単 / delegateメソッドはRailsのActiveSupportの機能の1つ / https://railsguides.jp/active_support_core_extensions.html#メソッドの委譲 "
  • Rails のポリモーフィック関連付けの解説と方法

    概要 現場でポリモーフィック関連付けを使用する機会がありましたので、記事を書きました。 オブジェクト指向のポリモーフィズムと絡めて勉強してみたので、もしも認識の違いなどあればコメントくださいませ。 ポリモーフィックと似ている、ポリモーフィズムについて オブジェクト指向の三大要素の1つとして、「ポリモーフィズム」が存在します。 ポリモーフィズムとは、「多様性」という意味があり、同一のインターフェースやメソッド名を持つ異なるオブジェクトが、それぞれ異なる振る舞いをすることを言います。 例えば「犬」と「」のクラスを実装するとき、それらを抽象化した「動物」のクラスを実装することが多いはずです。 そして、犬とにそれぞれ「鳴く」というメソッドを実装するときは、「動物」クラスのメソッドをオーバーライドすることになります。 この「鳴くというメソッドが共通で存在し、クラスの種類(今回の「犬」と「」)に

    Rails のポリモーフィック関連付けの解説と方法
    YassLab
    YassLab 2024/01/10
    “現場でポリモーフィック関連付けを使用する機会がありましたので、記事を書きました。 オブジェクト指向のポリモーフィズムと絡めて勉強してみたので、もしも認識の違いなどあればコメントくださいませ。 ”
  • Action Mailer + letter_opener_web を使って開発環境のメール送信機能を実装する

    送信されたメールが、以下のようにブラウザで確認することができること そもそもなぜ letter_opener_web が必要なのか 実際にメールを送信するには外部のメールサーバーを(SMTPサーバー)が必要になります。 主に使用されるサービスとして以下が挙げられます。 Gmail SendGrid Amazon SES Mailgun ただ、開発している時にいちいちメールサーバーを立てて、メールが実際に送信されるかみたいなことをやるのは非常に面倒です。 そこで、letter_opener_web gem を使うことで、以下のことができるようになります。 メールの送信を実際に行ったように見せかける ブラウザ上で送信したメール内容を確認する letter_opener_web の導入 必要な gem のインストール Gemfile の development のグループに以下を追記して bun

    Action Mailer + letter_opener_web を使って開発環境のメール送信機能を実装する
    YassLab
    YassLab 2024/01/01
    “今回は Rails のデフォルトの機能である ActionMailer と、letter_opener_web gem を使って、 開発環境でメール送信を確認できるようにしていきます。”
  • 1