Sql 过滤器根据天/周/月充当可标记的标记云

Sql 过滤器根据天/周/月充当可标记的标记云,sql,ruby-on-rails,postgresql,ruby-on-rails-4,acts-as-taggable-on,Sql,Ruby On Rails,Postgresql,Ruby On Rails 4,Acts As Taggable On,我试图让我的标签云只显示特定日期、周或月等的流行标签 我试图通过将一个sql条件传递到tag_counts_on选项中来让它工作 例如,尝试为今天的流行标签制作一个标签云 <% tag_cloud Micropost.tag_counts_on(:tags, options = {:conditions => ["SELECT * FROM microposts WHERE DATE(microposts.created_at) = DATE(NOW())"]}).limit(10)

我试图让我的标签云只显示特定日期、周或月等的流行标签

我试图通过将一个sql条件传递到tag_counts_on选项中来让它工作

例如,尝试为今天的流行标签制作一个标签云

<% tag_cloud Micropost.tag_counts_on(:tags, options = {:conditions => ["SELECT * FROM microposts WHERE DATE(microposts.created_at) = DATE(NOW())"]}).limit(10).order('count desc'), %w[s m l] do |tag, css_class| %>
        <%= link_to tag.name, tag_path(tag.name), class: css_class%>
但是我得到了以下错误

PG::Error:Error:子查询只能返回一列 第1行:…0作为taggings.tag_id=tags.id上的标记,其中选择*。。。 ^ :从选择1中选择CountCountCount\u列作为从标记连接选择标记的count\u列。标记\u id,COUNTtaggings.tag_id AS taggings_count FROM taggings INNER JOIN microspots ON microspots.id=taggings.taggable_id,其中taggings.taggable_type='microspost'和taggings.context='taggs'和taggings.taggable_id INSELECT microsposts.id由taggings在DESC GROUP创建的_按taggings.taggings.tagu id将COUNTtaggings.taggable_id>0作为taggingstaggings.tag\u id=tags.id其中SELECT*FROM microposts其中DATEmicroposts.created\u at=DATENOW限制10个子查询


不知道如何解决这个问题,或者这是否是一个尝试并完成我想要做的事情的好方法。

我最终通过摆脱sql并使用此处的acts的:start_at选项使它工作起来

结果代码

Micropost.tag_counts_on(:tags, :limit => 5, :start_at => 1.day.ago )