導入方法
まず、次のコマンドを実行してプラグインをインストール。
ruby script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids
そして、次のコマンドを実行してマイグレーション用ファイルを作成。
ruby script/generate acts_as_taggable_migration
最後に次のコマンドを実行して必要なテーブルを作成する。データベースには SQLite3 を使用。
rake db:migrate
利用方法
モデルオブジェクトにタグを設定する
@entry.tag_list = "shopping"
これだけ。簡単。
複数のタグを付ける場合はデリミタで区切る。
@entry.tag_list = "shopping, book"
モデルオブジェクトに設定されているタグを取得する
tag_list から取得できる。
tags = @entry.tag_list
配列で取得するので注意。
タグの付いているモデルオブジェクトをデータベースから取得する
acts_as_taggable を記述したモデルに、find_tagged_with メソッドが追加されているので、それを利用する。
tags = Entry.find_tagged_widh("shopping")
普通の find と同じく、:order や :condition が使える。
また、複数のタグを指定することもできる。
tags = Entry.find_tagged_with("shopping, book")
ただし、この場合は「指定したタグのいずれかに該当するもの」が返ってくる。
指定したタグが全て付いているものを取得したい場合は
tags = Entry.find_tagged_with("shopping, book", :match_all => true)
とすればいい。
まとめ
プラグインを導入して、モデルに acts_as_taggable の1行を追加するだけで、タグ機能の大半が実現出来てしまう!