Rails in_order_of

Rails 7 で追加されたActiveRecordのメソッド。任意の順番でレコードを取得できるようになる便利メソッド。

ActiveRecord::QueryMethods | RailsDoc(β)

User.in_order_of(:id, [1, 5, 3])
# SELECT "users".* FROM "users"
#   ORDER BY FIELD("users"."id", 1, 5, 3)
#   WHERE "users"."id" IN (1, 5, 3)

See also. Rails 7 adds ActiveRecord::QueryMethods#in_order_of - BigBinary Blog

Kernel#DelegateClass

下記の記事を読んでなるほどな〜って思った。

Enumerable を include する代わりに Enumerator オブジェクトを活用する - Qiita

クラス superclass のインスタンスへメソッドを委譲するクラスを定義し、そのクラスを返します。

require 'delegate'

class ExtArray < DelegateClass(Array)
  def initialize
    super([])
  end
end

Rails delegate_missing_to

Rails では、 delegate_missing_to なんてものもある。

class Partition
  delegate_missing_to :@event

  def initialize(event)
    @event = event
  end

  def person
    detail.person || creator
  end
end