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 モデルとの結合を示しているため、より正しいように見えますが、他のプロジェクトでこのパターンを見たことがありません。
私は何かを考えていませんか?これに適したパターンは何ですか?