「generate_random_string」、「generate_random_user_agent」など、さまざまなライブラリから呼び出される静的メソッドを定義する最もエレガントな方法はどれですか?
ベストプラクティスは何ですか?
「generate_random_string」、「generate_random_user_agent」など、さまざまなライブラリから呼び出される静的メソッドを定義する最もエレガントな方法はどれですか?
ベストプラクティスは何ですか?
私が見たベスト プラクティスには次のようなものがあります。
module
て/lib/
ある時点でそれらを独自の gem に分離したり、ある時点でサービスとして利用できるようにする可能性があるかのように計画します。最初から個別のサービスとして設計するという意味ではありませんが、アプリケーション内の他のコードに依存しないようにしてください。
基本的なコードは次のようになります。
module App::Services
def generate_random_string
# ...
end
def generate_random_user_agent
# ...
end
end
次に、モデルまたはコントローラー コード (または任意の場所) に、次のように含めることができます。
class MyModelClass < ActiveRecord::Base
include App::Services
def do_something_here
foo = random_string
# whatever...
end
def random_string
generate_random_string
end
end
generate_random_string
独自のメソッドで呼び出しを分離したことに注意してください。これにより、モデル クラスで使用できるようになりますが、他のメソッドに簡単に切り替えられる可能性があります。(これは、あなたが望むよりも一歩進んでいるかもしれません。)