ユーザーがコースを作成し、コースにさまざまな種類のリソース(ドキュメント、ビデオ、クイズ)を含めることができるアプリを作成しています。コースとそのリソースの間に関連付けを設定するための最良の方法を見つけるのに苦労しています。
今、私は持っています:
class Course < AR::Base
has_many :documents
has_many :videos
has_many :quizzes
end
class Document <AR::Base
belongs_to :course
end
class Video <AR::Base
belongs_to :course
end
class Quiz <AR::Base
belongs_to :course
end
ドキュメント、ビデオ、およびクイズにはすべて、いくつかの共通の属性(名前、説明など)がありますが、異なる多くの属性もあります。STIを使用して、「レッスン」と呼ばれる単一のクラスから継承させることを検討しました。クラスごとに複数のコントローラーが必要なため、このアプローチに反対することにしました。
最終的には、コースに属するすべてのリソースに対して操作を実行できるようにしたいので、たとえば、すべてのドキュメント、ビデオ、およびクイズをまとめてリストし、それらを並べ替え可能なリストとして表示します。
このモデルを設定するための最良の方法に関する提案。私はそれを2つの方法で行うことができるようです:
私はレール初心者なので、この状況に最適なアプローチを評価するのに苦労しています。アドバイスをいただければ幸いです。