質問: railsでアプリをいくつか作りました。 classは慣れてきたのですが、moduleがいまいちわかりません。 classと違いが無いように見えるのですが何が違い、どのように使い分けるのでしょうか。
回答: 複数のclassにまたがるメソッドを継承ではなく合成したいときにmoduleを作ります。 class => インスタンス化できる。継承できる。 module => インスタンス化できない。名前空間とメソッドの入れ物。メソッドをmixinできる。 railsでは、ActiveSupport::Concernを使ってmoduleを作ることが多いです。 [Rails] ActiveSupport::Concern の存在理由 - Qiita 例えばファイルをアップロードするコントローラでアップロード機能だけをconcernとして実装すると汎用性の高い(使い回すことができる)アプリケーションといえるでしょう。