ruby-on-rails – 应用程序仪表板查看逻辑
在我的应用程序中,我想在登录时提供类似屏幕的仪表板,以便了解正在发生的事情.我有大约4个模型,我需要从中收集数据并按顺序对它们进行排序.我的问题是知道动作,所以我可以获得每个模型的特定字段.
这里有一些关于如何去做的想法,但我觉得它们不是最好的和最不完整的. >我有一个单独的模型,其中包含:model,associated_id,action. “Post,1,created”就是一个例子. 最好的方法是什么?我在下面提供了一个例子: 解决方法
使用单独的模型来存储您在第一个想法中建议的Feed条目.您所看到的设计模式称为
polymorphic association pattern
让我们假设这个新模型被称为Feed,遵循多态关联模式,您将使用列:feedable_type和feedable_id(与建议的列名称模型和associated_id相对应) 我必须承认,你的问题比对多态关联的简单理解更大,提要是现代信息设计的一项重大创新,需要许多复杂的功能,包括: >隐私 根据这些属性中的任何一个,所有这些都会变得非常复杂.如果你必须满足一些非功能性的要求,如缩放和性能,头痛会迅速复杂化. 如果你曾经构建过一个Facebook应用程序,那么看看他们的feed发布API是如何工作的,这是非常有启发性的. 您很快就会注意到用于存储Feed的单独模型完全没有装备来呈现供稿条目HTML,但是加载用于呈现HTML的原始模型的数据库是昂贵的.为了解决这个问题,我让原始模型渲染了feed的HTML,并将其存储到feed表中. 当然,实现甚至比这更复杂.与Facebook一样,所有Feed都有1个共同点(它们来自人).所以每个feed条目都有user_id(可以这么说).由于我们知道所有Feed都有这些数据,并且可以呈现新闻源的“谁做了”部分,因此我们不预先渲染该部分. 尽可能多地预渲染以后很难从Feed模型重新构建,但是当我们确定组件无处不在并且隐藏在我们的Feed模型中时,会延迟预渲染. 最后,研究开源项目是一种很好的学习方式 > Lovd by less (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |