Rails: pluckでメモリを大幅に節約する(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Using pluck can save a bunch of memory - Andy Croll 原文公開日: 2018/09/16 著者: Andy Croll Rails: pluckでメモリを大幅に節約する(翻訳) Active Recordのモデルは信じられないほど柔軟性が高く、機能が山ほど搭載されています。メソッドのAPIが大量にあるため、Active Recordの個別のオブジェクトはメモリに読み込まれると非常に場所を取ります。 Active Recordのモデルにフィールドがたった1つあるだけでも(たとえばidだけでも)、Railsが背後に控えているのです。 次のように書くのではなく 多数のオブジェクトをイテレーションしてメモリに全部読み込む。 Book.paperbacks.map { |book| book.title } #=> [“Eloquent Ruby”, “Sapiens”, “Agile Web Development With Rails”] Book.paperbacks.map(&:title) #=> [“Eloquent Ruby”, “Sapiens”, “Agile Web Development With Rails”] 次のように書く ActiveRelation#pluckメソッドを用いて、必要なフィールドをデータベースから直接読み込む。 Book.paperbacks.pluck(:title) … Continue reading Rails: pluckでメモリを大幅に節約する(翻訳)