性感染症に注意してください
STIを使用するよりも、懸念を持ち続けます。STI は、多くの場合、それが解決する問題 (型の不一致、フォームの URL など) を引き起こします。さらに、継承は意味がありません。ここでは、ユーザーは一種の会社ではなく、会社は一種のユーザーではありません。
ネーミングの問題ですね
あなたの問題は命名の問題だと思います。明らかに、あなたの懸念は「UserConcern」であってはなりません。問題は、どのような方法をその懸念に分類するかということです。
ユーザー間の社会的関係についてのあなたの方法はありますか?次に、Socializable懸念が必要です。彼らはメーリングリストへの登録についてですか?Subscribable次に、懸念が必要です。
開発者は「これは一体何をするのだろう?」と不思議に思わないからです。すべての懸案事項に適切な名前が付けられている場合。
とにかく複製するもの
また、おそらくクラス レベルのメソッドが懸念事項を呼び出せるようにする必要があります。
スコープがコンサーンに埋め込まれても構わない場合 (結局のところ、スコープはメソッド定義で解決されます)、そこにリレーションを配置するのはあまり自然ではないように感じます。
複製する#has_many :foosことは問題ありません。私たちは常に別々のモデルでそれを行っています。さらに多くの情報を隠すことなく、モデルからテーブル スキーマのアイデアを得ることはすでに十分に困難です。