搜索数组成员的文本

时间:2012-12-10 04:29:06

标签: ruby arrays ruby-on-rails-3.2

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

Guest
    name: string

Episode
    title: string
    description: string

Appearance
    guest_id: integer
    episode_id: integer

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

通常情况下,如果客人数量较少,这将非常容易,但迭代整个客人集合并检查剧集的标题和说明字段似乎很浪费。

我可以看到这是一个“已解决的问题”,但我遇到了一个问题,即找到一个解决方案,考虑到大量客人的扩展影响或越来越多的搜索属性(例如添加更多)字段到Episode模型检查)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

假设您正确配置了关系:

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

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

Guesthas_many :episodes, through: :appearanceshas_many :appearances的位置。