Rails从不同月份获取图像

时间:2012-11-22 11:20:10

标签: ruby-on-rails-3 algorithm search

Iam是一个Rails开发人员,他正在开发一个需要显示不同图像的集合的项目。我想实现一种算法,我希望在不同的时间范围中获取图像,例如,当前月份的30%图像和20%的图像从上个月等等,将它们一起洗牌并创建一个集合,然后在网站上显示它。因此,它使我能够为图像模型定位 created_at 属性,并根据创建日期获取图像。

我寻找各种可能的解决方案。其中一个是 Thinking Sphinx 。根据{{​​3}},您可以为属性提供字段权重。但我的问题是我想在属性内给予权重,即第一个月为30%,第二个月为20%。所以我没有发现它是一个很好的解决方案。

接下来我想用范围

来实现同样的目标

图片模型

class Image < ActiveRecord::Base
  scope :current_month, where("created_at < ? and created_at > ?", Time.now, 1.month.ago).shuffle.take(6)
  scope :previous_month, where("created_at < ? and created_at > ?", 1.month.ago, 2.month.ago).shuffle.take(5)
  scope :last_month, where("created_at < ? and created_at > ?", 2.month.ago, 3.month.ago).shuffle.take(4)
end

图像控制器

class ImagesController < ApplicationController
  @total_images = Image.current_month + Image.previous_month + Image.last_month
end

但是这会为每个请求获取相同的图像集。每次请求时我都需要不同的图像。此外,由于单个请求多次访问我的数据库,这将使我的网站的性能真的下降。

请指导我更好,更正确的方法来实现这一点。提前谢谢。

0 个答案:

没有答案