Railsにおいて共通した処理を切り出すために [ActiveSupport::Concern] (http://api.rubyonrails.org/classes/ActiveSupport/Concern.html) がよく使われています。 しかし、Rubyには元から mix-in という処理を切り出す機能があります。 では、ActiveSupport::Concern の存在理由は何でしょうか。 mix-inの複雑な記述を省略できる Rubyの mix-in は通常以下のようなルールで記述します 切り出した機能を module として作成 共通メソッドを module 内に記述 クラスメソッドや組み込み先クラスの内部処理を module に入れたい場合は特殊なメソッドを使う必要がある ActiveSupport::Concern はこの3番目にある 特殊なメソッド の記述を簡単に

