私はモデルアクティビティを持っています。そして私は、そのような私のウェブサイト上で起こっニュースやイベントの種類のモデルとしてそれを使用したい:一度に複数のオブジェクト/エンティティに関する情報を格納するための多態性
ユーザーが記事
ユーザーを作成したユーザーが持っている記事に
を編集しましたユーザーは常にユーザーへの接続であり、画像に
をアップロードしたコメント
を削除しました。そして何か他に:記事、ニュース、コメント、画像、プロフィール。これをどのように実装できますか?
Activity
belongs_to :with_activity, polymorphic: true
belongs_to :user
Articles
has_many :activities, as :with_activity
News
has_many :activities, as :with_activity
しかし、私はすべての IDが関与してどのように私はを指定することになり、活動を作成しています:私はこれを行うことができますか?
例: 「ユーザーが記事にコメントを追加しました」。ここには3つのエンティティがあります。ユーザーIDは "belongs_to:user"によって取得されます。しかし、Comment IDまたはArticleのいずれかは、「belongs_to:with_activity、polymorphic:true」で取得され、両方ではありません。一方、私は両方が欲しいです。必要に応じて以上:
"記事の画像にコメントが追加されました"。 - 4つのエンティティがありますが、2つのIDだけがキャプチャです。私はすべてのIDを保存する必要があります。 "多形性"は、単一のエンティティのIDだけを格納することを可能にする。
どうすれば回避できますか?私は "belongs_to":picture、:article、:commentなどをアクティビティに追加する必要がありますか?より良い解決策はありますか?
私はそれに宝石を使用したくないことに注意してください。
「この記事では、記事に属していると思います」 - はい、この特定の例でのみです。 – Otaffa
複数のエンティティが互いに関連していない場合はどうなりますか? – Otaffa
誰かがお互いに関係のない複数の活動をどのように行うことができるのか分かりませんか?私は、物事が接続される必要がある、またはユーザーが行う行動によって作成されたオブジェクトによって接続されると仮定します。そうでない例を投稿できますか? – spickermann