いくつかプラグインがあるが、acts_as_taggable_on_steroidsが一番人気のようだ。
acts_as_taggable_on_steroidsの使い方は、acts_as_taggable_on_steroidsの使い方まとめ - ひげろぐが参考になる。
acts_as_taggable_on_steroidsのインストール元については、Railsのtagプラグイン「acts_as_taggable_on_steroids」がgithubに行ってた - 常識という迷信にあるとおり、現在はgithubにあるのが最新のようだ。
上記の参考サイトではacts_as_taggable_on_steroidsの機能をフルに使っているが、タグクラウドを表示したいだけなら下記だけでOK。
- acts_as_taggable_on_steroidsをインストール
- タグのモデルを用意する(既存のモデルでもcountと表示用の文字列(下記の例ではlabel)さえあればOK)
# tag_sample.rb
class TagSample
attr_accessor :count, :label
end - 上記のモデルにデータをセットした配列を用意
# FooController.rb
# 実際にはDBから取得したデータとかをループで処理するだろうけど
tag1 = TagSample.new
tag1.count = 10
tag1.label = "ラベル1"
tag2 = TagSample.new
tag2.count = 20
tag2.label = "ラベル2"
@tags = [tag1, tag2] - ヘルパーでTagsHelperをインクルードする
# foo_helper.rb
module FooHelper
include TagsHelper
end - ビューでタグクラウドを表示(第2引数のCSSクラスの数は増減OK)
<!-- foo/bar.html.erb -->
<% tag_cloud(@tags, ["tag-s", "tag-m", "tag-l"]) do |tag, css| %>
<%= link_to(h(tag.label), {:action=> :tags, :id => tag.label}, :class => css) %>
<% end %> - CSSで見た目を調整
a.tag-s { font-size: 80%; }
a.tag-l { font-size: 150%; }
0 件のコメント:
コメントを投稿