我正在创建一个学习管理系统,管理员可以在其中创建课程并将其分配给用户。课程has_many课程,用户标记课程完整。
现在,我想扩展此功能并添加一个文档模型,管理员可以上传文档并将其分配给用户。然后,用户必须进入平台并将文档标记为已完成,类似于他们与课程的交互方式。
我知道我应该从一个像AssignableMaterial这样的模型开始,并使得Curriculums和Document继承自AssignableMaterial,但我并不认为我会添加文档。什么是添加文档的最佳方式,仍然使用" assign"来自课程的功能,"标记为完整"课程功能?
文档是否可以从课程继承,或者我是否必须将所有与课程/课程相关的方法移动到父模型AssignableMaterial中,然后从该父模型继承Document?
答案 0 :(得分:0)
最好的策略可能是将文档和课程的共同特征提取到“关注点” - 文档和课程将保持直接从ActiveRecord :: Base继承的单独类,在数据库中使用单独的表,但是常见的它们之间的行为将存在于一个包含的单个模块中。
请参阅此问题以获取概述:How to use concerns in Rails 4