app/models/user.rb に User モデルがあります。私の User クラスには、外部サービス Intercom に関連する多くの操作があります。現在register_intercom_user、update_intercom_data、ping_intercom、 などのメソッドがたくさんあります。これらはすべて User オブジェクトに関連しています。
いくつかのオプションがあります:
- これらの方法で mixin を作成します (最も簡単なオプション)。しかし、その後、ユーザーの名前空間を汚染しています。
- lib/dir に intercom.rb ファイルを作成し、
def new(user). ただし、これは User クラスから遠く離れており、結合を意味しないため、面倒です。 - で app/models/user/intercom.rb を作成します
class User::Intercom; def new(user)...。User モデルとの結合を示しているため、より正しいように見えますが、他のプロジェクトでこのパターンを見たことがありません。
私は何かを考えていませんか?これに適したパターンは何ですか?