0

我有以下一组模型/关联:

在此处输入图像描述

虽然这从面向对象的角度来看是有道理的,但它引入了巨大的距离,例如;一个 NewsItem 和在 UI 中表示它的 Photo.image。

一个明显的改进是放弃MediaItem并制作VideoPhoto多态,但是我需要互换地对待它们,对它们进行排序、排序以搜索它们,而多态关联使这变得更加复杂/尴尬。它还将涉及许多重复的属性(当前在 上MediaItem)。

我对这个设置的主要问题是我有NewsItem视觉表示 a 的情况。除了它的标题,我还展示了一张图片,它是它的封面图片NewsItem——实际上是画廊中的第一张照片。

在这种情况下,我有效地这样做:

news_item.gallery.media_items.cover_photo.image.url(:thumbnail)

鉴于一次屏幕上最多有 20 个这样的项目(可能更多),我肯定需要确保通过笨拙的includes.

当然,我可以在很大程度上隐藏委托背后的一些访问权限,例如:

news_item.gallery_cover_image

但这仍然给我留下了试图包含表链的尴尬查询。

有没有更明智的结构方式?

4

0 回答 0