通过标记

时间:2017-04-07 00:00:14

标签: ruby-on-rails tagging acts-as-taggable-on

我使用gem act-as-taggable-on来标记我的资源。 我想知道是否有一种有效的方法(预先定义的方法等)来选择具有最多重合标记的5个资源的列表。

诅咒我可以写一个双循环然后命令结果,但可能有更好的方法。

提前致谢

更新

我编写了这段代码,用于查找给定“提示”的三个最相似的提示

def similar_tips(tip)
  if tip.is_a?(Tip)
    sim_tips=Tip.all.map{ |t| [t,(t.tag_list & tip.tag_list).size]}.sort_by {|a,n| n}.reverse[0..2]
    sim_tips.map{|t,n| t}
  end
end

它确实有效,但对我来说看起来很难看=)

0 个答案:

没有答案