Rails 3使用sunspot通过created_at搜索多个模型

时间:2012-06-08 23:11:56

标签: ruby-on-rails-3 sunspot

我正在尝试在我的Rails应用程序中使用“新功能”部分,该部分考虑了为不共享任何关系的各种表创建的新记录。他们共同做的一件事就是他们都有一个created_at字段,我将用它来确定它们是否确实是“新的”然后我想要通过该公共字段对结果进行排序。我尝试用Sunspot做这个,但我无法弄清楚如何使用从太阳黑子搜索返回的结果集......

例如,在我的上传和文章模型中,我有:

searchable do
    time :created_at
end

在我的搜索操作中,我会这样做:

@updates = Sunspot.search(Upload,Article) do
    with(:created_at).greater_than(1.hour.ago)
end

似乎返回了一些内容,如果我执行了@ updates.total,它会返回我期望找到的记录数。除此之外,我不确定如何真正利用这些记录。我想做的是将@updates发送到视图并确定每个记录的模型类型,然后继续打印出相关信息,即名称,描述,父/子记录信息(例如upload.user.username) )。

我可能会想到这一切都错了,也许对于我正在尝试执行的简单搜索,有一个比太阳黑子更好的选择?

1 个答案:

答案 0 :(得分:2)

有关如何使用搜索结果的详细信息,请参阅readme。您正在寻找的方法是“结果”,默认情况下会为您提供前30个结果:

@updates.results # array of first 30 results