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.