Rails: スコープはスコープを返すべき(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A scope should return a scope - Andy Croll 原文公開日: 2018/10/14 著者: Andy Croll Rails: スコープはスコープを返すべき(翻訳) RailsアプリをコーディングしていてRailsというレールに乗っている期間が長くなればなるほど、アプリを楽にメンテできるようになり、つらさが軽減されます。 レールに乗るよい方法の1つは、標準のRails APIのパターンに沿って進めることです。そうやって進めるときに自分を導いてくれるパターンの1つが、よく使われるクエリをスコープ化することです。 次のように書くのではなく スコープ内でオブジェクトを1つ返すメソッドを書く。 class Message < ActiveRecord scope :sent, -> { where.not(sent_at: nil) } scope :recently_sent, -> { sent.order(sent_at: :desc) } scope :most_recently_sent, -> { recently_sent.first } # オブジェクトかnilを返す end 常に次のように書くこと 名前付きスコープからはActiveRelationを1つ返すようにする。 class Message … Continue reading Rails: スコープはスコープを返すべき(翻訳)