2017-05-13 20 views
0

私はact-as-taggable-on宝石を使用しています。タグが4つのCSSカテゴリの間でどのように割り当てられているかを理解しようとしています。この例のように:https://github.com/mbleigh/acts-as-taggable-on#tag-cloud-calculationsact-as-taggable-on宝石のcssカテゴリの割り当てのアルゴリズム

各CSSカテゴリに割り当てられたタグの数を決定するアルゴリズムとは何ですか?そして、私は、例えば4から6にCSSカテゴリの数を変更することができ、私はこれを行うことができます。

<% 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カテゴリの割り当てが分配されますか。私はドキュメンテーションを見て、まだ答えを見つけていない。

答えて

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が見つかります。

関連する問題