2011年8月19日金曜日

rails acts_as_taggable_on_steroidsを試してみた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
タグといえばほとんどのサイトに使われているんではないでしょうか?
有名なgemみたいで使い方は他のブログにもたくさん書いているので
ここでは機能をメモ用としてまとめておきます。

・gem

acts_as_taggable_on_steroids
https://github.com/jviney/acts_as_taggable_on_steroids

・使い方
 ruby script/generate acts_as_taggable_migration
 rake db:migrate
 対象モデルにacts_as_taggableをつける

・機能
(ちょっと説明が雑ですが)
対象モデルにタグ要素を付加して扱うことができる
p.tag_list # ["Funny", "Silly"] #タグを複数登録したり
p.tag_list.add("Great", "Awful") #タグを追加したり
p.tag_list.remove("Funny") #タグを削除したり

・タグをビューに表示したり
<%= f.label :tag_list %>
<%= f.text_field :tag_list, :size => 80 %>
※1つのフィールドに複数のタグを入力して半角,で区切ると一度に複数登録できるみたい。

・findや条件つけてタグを検索したり
Post.find_tagged_with('Funny, Silly', :match_all => true)

・タグクラウドを簡単につくれたり
@tags = Post.tag_counts


・タグをキャッシュに保存して負荷を軽減したり
  class CachePostTagList < ActiveRecord::Migration
    def self.up
      add_column :posts, :cached_tag_list, :string
    end
  end

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

・タグの区切り?を変えたり
TagList.delimiter = " "

できるらしい、すごく便利ですね。
サイトでタグはよく使われるでこれで簡単に扱えそうです。

以下のブログ参考させてもらいました。

タグクラウドの実践
http://wine4u.seesaa.net/article/169189619.html

メソッドが詳しくのってる
http://higelog.brassworks.jp/?p=93

0 件のコメント:

コメントを投稿