Ruby on Rails 3を使用しています。モジュール内のカスタムコードと共有コードを移動したいと思います。
前もって感謝します。
1.モジュールを作成/開くには、次のように言うだけです。
module MyModule
def first_module_method
end
end
宛先2. lib
フォルダー。モジュールをlib
フォルダーに整理する場合は、モジュール自体にモジュールを配置できます。たとえば、サブフォルダーsuper_modules
モジュールは次のように定義されます。
module SuperModules
module MyModule
def first_module_method
end
end
end
3./5へ。モジュールをクラスに含める場合、クラス内で定義されているかのようにモジュールのメソッドを単純に呼び出すことができます。
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
4.最初に、アプリケーションのすべてのクラスでモジュールが本当に必要であることを確認します。そうでない場合は、どうしても必要のないクラスを肥大化させないように、必要な場所にのみ含めるのが理にかなっています。本当にどこでもモジュールが必要な場合は、アプリ内のクラスのクラス階層を見てください。すべてのモデルにモジュールが必要ですか? ActiveRecord :: Baseを開き、そこにモジュールを追加できます。
A> 1。他のRubyクラスと同じ構文を使用できます。たとえば、classify_vehicleメソッドを使用して、車輪の数に基づいて車両を分類するVehicleClassiferモジュールを定義しています入力として受け取ります。
module VehicleClassifer
def classify_vehicle(number_of_wheels)
VehicleType.where("number_of_wheels = ?", number_of_wheels)
end
end
A> 2。モジュールは通常/ libフォルダーに保存されます。
質問3、4、5はほぼ同じ答えを持っています。使用できます
class SomeController < ApplicationController
include VehicleClassfier
def index
classify_vehicle(4)
end
end
クラスでは、モジュールを使用しており、モジュールのすべてのメソッドにアクセスできます。
また、アプリ全体でモジュールを使用する必要がある場合は、アプリケーションコントローラーに含めることができます。