1

在我目前正在进行的一个项目中,我有以下模型:

Guest
    name: string

Episode
    title: string
    description: string

Appearance
    guest_id: integer
    episode_id: integer

如您所见,客人通过外观表“出现”在多个剧集中。当我检索剧集时,目前通过 RSS..我想找到一种方法来检查 Guest 表中任何成员的标题和描述。如果找到匹配项,它将建立关联。

通常情况下,如果有少量客人,这将非常容易,但遍历整个客人集合并检查剧集的标题和描述字段似乎很浪费。

我可以看到这是一个“已解决的问题”,但我在寻找解决方案时遇到了问题,该解决方案考虑到了大量客人的扩展影响或越来越多的搜索属性(例如向要检查的情节模型)。

任何帮助将不胜感激。

4

1 回答 1

0

假设您的关系配置正确:

descriptions = rss_items.map {|i| i.description}

Guest.includes(:episodes)
     .where(Episode.arel_table[:description].in(descriptions))

哪里Guest有一个has_many :episodes, through: :appearanceshas_many :appearances

于 2012-12-10T04:37:55.863 回答