は現在、私はこのようなモジュールがあります。モジュールでクラスメソッドを使用する方法はありますか?
module MyModule
def A
end
.....
end
をし、私はクラスメソッドとしてその方法Aを使用したいモデルを持っています。しかし、事は私はそのメソッドが必要です。私がそれを拡張すると、私は他の不要なクラスメソッドを私のモデルに拡張しようとしています。そのため、私はこのようにモジュールを書き換えることなくMyModule.AのようなSTHを行うための方法があります:
module MyModule
def A
...
end
def self.A
...
end
.....
end
それは私がそのように行う場合は自分自身を繰り返すの一種です。私はまだ、Railsでそれを行うより良い方法があると感じています。
['module_function:A'](https://ruby-doc.org/core/Module.html#method-i-module_function):: _Sidenote:_あなたはすべきですメソッドを大文字にしない。あなたがそうすることを妨げるものは何もありませんが、Rubyは、 'Kernel#Integer'や家族のような、非常に特殊な場合に大文字の名前を使用するという規則を持っています。 – mudasobwa
冷たい私の質問を別の投稿として返信してください。私はあなたの答えを受け入れることができますか? –
'extend'はクラスのメソッドとしてモジュールのインスタンスメソッド(モジュールがインスタンスを持たないにもかかわらず、それらが呼び出されるものです)だけを持ち込みます。 'extend'はモジュールのクラスメソッドで何もしません(' include'もしません)。したがって、 'A'(それを' a'と呼ぶ)がモジュールの唯一のインスタンスメソッドである場合、何もしません。 –