モジュールは、メソッド、定数、および他のモジュールやクラスの定義をまとめたもの。
→クラスとの違いは、オブジェクトを作成できない事。
モジュールは2つの目的がある。
1.名前空間として機能 2.複数のクラスで機能を共有できる。モジュールをmix inとしてクラスにインクルードすると、そのモジュールのインスタンスメソッドは、もともとクラスで定義されているメソッドと同様に使用できる。 →同一のモジュールを複数のクラスにmix inできるので、継承をつかわなくても特定のモジュールの機能を複数のクラスで共有できる。 単一のクラスに複数のモジュールをmix inすることも可能。
Railsでは、ヘルパーメソッドの実装にモジュールが使われている。 →ヘルパーメソッドは適切なビュー店pレートに自動的にmix inされる。
ex.)storeコントローラによって呼び出されるビューから呼び出し可能なヘルパーメソッドを作る必要がある場合、次のようなモジュールをapp/helpersディレクトリのstore_helper.rbファイル内でていぎすれば、それだけでこのメソッドが呼び出せる。
module StoreHelper
def capitalize_words(string)
string.gsub(/\b\w/) {$&.upcase}