On my continuing quest to become more Web-2.0-ish, I’ve tried my luck tilting at… well, tag clouds. To get an idea what I’m talking about, please have a look.
These are the rudimentary basics to create a tag cloud like that.
In the controller
def tags @popular_tags = Tag.find_most_popular(:limit => 30) end
In the view
<ul id="tags" class="tagcloud"> <% @popular_tags.sort_by(&:name).each do |t| -%> <%= weighted_tag t, tag_options %> <% end -%> </ul>
or, to get a somewhat nicer look, and to demonstrate some of the options
<% tag_options = { :wrap => ['li', '<span class="dlm">[</span>', '<span class="dlm">]</span>'], :min_size => 100, :max_size => 500, :link_options => { :class => 'tag' }) } -%> <h2>Tags</h2> <ul id="tags" class="tagcloud"> <% @popular_tags.sort_by(&:name).each do |t| -%> <%= weighted_tag t, tag_options %> <% end -%> </ul>
Here you can download a do-it-yourself kit of all the pieces.