用于在act-as-taggable-on gem中分配css类别的算法

时间:2017-05-13 18:42:33

标签: css ruby-on-rails act-as-taggable-on

我正在使用act-as-taggable-on gem。试图了解如何在4个css类别之间分配标签。如下例所示:https://github.com/mbleigh/acts-as-taggable-on#tag-cloud-calculations

决定分配给每个css类别的标签数量的算法是什么?我可以将css类别的数量从4更改为6,例如,我可以这样做:

<% tag_cloud(@tags, %w(css1 css2 css3 css4 css5 css6)) do |tag, css_class| %> <%= link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class %> <% end %>

基本上,如何分配css类别的分配?我查看了文档,但还没有找到答案。

1 个答案:

答案 0 :(得分:0)

tag_cloud方法源代码读取:

def tag_cloud(tags, classes)
  return [] if tags.empty?
    max_count = tags.sort_by(&:taggings_count).last.taggings_count.to_f

  tags.each do |tag|
    index = ((tag.taggings_count / max_count) * (classes.size - 1))
      yield tag, classes[index.nan? ? 0 : index.round]
    end
  end
end

这意味着您可以根据需要传递任意数量的类。您可以找到来源here