こんにちはスタックオーバーフロー:私はムービークリップ、mp3、写真を格納しているいくつかの異なるモデル(ムービー、ソング、写真など)を持つRuby on Railsアプリケーションを構築しています。私はユーザーがこれらのモデルのいずれかにコメントできるようにして、どのコメントが公開されているかをコントロールできるようにしたいと思います。私はよ、私はコメントテーブルに推測している次に多くのモデルにコメントを追加するベストプラクティスとは何ですか?
has_many :comments
:各モデルを
belongs_to :movie
belongs_to :song
belongs_to :photo
そしてネクタイ:
はとのコメントモデルを作成するためのベストプラクティスです
comment, movie_id, song_id, photo_id
これは、このようなものを構築する正しい方法ですか、それとも、より良い方法ですか?あなたの助けを前にありがとう。
私はこのアプローチが気に入らない理由は、モデル名をデータベースレコードに結びつけるからです。モデルの名前を変更すると、テーブル名を変更するだけでは簡単ではありません。あなたの変更に合わせて、commentable_typeテーブル内のすべてのエントリを変更することを忘れないでください。 –
モデルの名前を変更している場合、commentable_type列を更新するためにdbマイグレーションを作成するコストは、コードを変更するコストに比べて簡単です。 –