[Rails 5.1] 新機能: delegate_missing_toメソッド(翻訳)

こんにちは、hachi8833です。今回のBigBinaryシリーズは、週刊Railsウォッチでも紹介していなかったRails 5.1の新機能です。 DHHはこのメソッドをdecoratorで使うことを想定してるとのことです。 概要 原文: Rails 5.1 adds delegate_missing_to(米国BigBinary社のブログより) 原文公開日: 2017/05/30 著者: Neeraj Singh 新機能: delegate_missing_to(翻訳) #method_missingを使うときには、#respond_to_missing?も併用するべきです。しかし、#method_missingと#respond_to_missing?を両方使うとコードが冗長になるのも確かです。 DHHが自ら上げた#23824で、冗長なコードの典型的な例を見ることができます。 (訳注: このコード例はそのままAPIドキュメントでも使われています) class Partition def initialize(first_event) @events = [ first_event ] end def people if @events.first.detail.people.any? @events.collect { |e| Array(e.detail.people) }.flatten.uniq else @events.collect(&:creator).uniq end end private def respond_to_missing?(name, include_private = false) @events.respond_to?(name, include_private) end def method_missing(method, *args, … Continue reading [Rails 5.1] 新機能: delegate_missing_toメソッド(翻訳)