複数の ID で Omniauth を使用してログインしています (Facbook、LinkedIn など)。現在、Service と呼ばれる単一のモデルがあり、( provider
with valuesなど)、およびその他のフィールドがいくつかあります。facebook
linkedin
oauth_token
ここで、特定のプロバイダーにのみ適用される Service モデルに多くのメソッドを追加しました。たとえば、friend_count
プロバイダが の場合にのみ適用されますfacebook
。
私のコードは臭いがし始め、リファクタリングが必要だと思います。プロバイダー固有の列を多く追加することはないと思うので、ポリモーフィズムは必要ありません。
私の質問は、どの設計パターンを採用する必要があるかです。単一テーブルの継承、またはより単純なものですか?