2009年8月11日火曜日

[Rails][習作] 簡易ブックマークアプリ (5)

[Rails][習作] 簡易ブックマークアプリ (4)  の続きです。(もはや自分しかわからない備忘録。)

プラグインを使ってリファクタした箇所が2点ほど。
  • 月別アーカイブメニューの書き直し(自作プラグイン)
  • タグクラウドの書き直し(acts_as_taggable_steroidsプラグイン)
月別アーカイブメニュー/プラグイン導入編

前回作成した、アーカイブメニュー作成支援プラグイン(α--版)を使いました。

Bookmarkモデルに

acts_as_archivable

の一文を追加。

コントローラのアクションメソッドに

@archive_counts = Bookmark.monthly_archive_counts

の一文を追加。

@archive_counts変数は、{ 年 => { 月 => 件数, 月 => 件数, ... }, ... } というハッシュに格納されるので、ビュー側ではこんな感じのアーカイブメニューが(わりと)簡単にできます。


タグクラウド/プラグイン編

acts_as_taggable_on_steroids という高機能タグ管理プラグインを導入。(知らずに自分で作ろうとしていた。。まぁ練習にはいいのだけれど。)

参考: acts_as_taggable_on_steroids のまとめ

script/plugin install で導入して、Bookmarkモデルに

acts_as_taggable

を追加するだけで高機能なタグ管理システムが使えるようになります。

プラグイン導入ついでに、複数タグでのエントリ絞込み機能を追加。次の find 文で、指定したすべてのタグを持つBookmarkモデルが検索されます。

@bookmarks = Bookmark.find_tagged_with(tags, :match_all=>true, :order=>"bookmarks.created_at desc").paginate(:page=>params[:page], :per_page=>5)
ビューではこんな感じで、現在の絞込み状況と「さらに絞る」リンクを表示。



また、新規作成/編集時のタグ付け支援(今ままでにつけたタグを表示&クリックでテキストボックスに自動追加)も実装。

(タグが多い場合の)見やすい表示と、補完・サジェスト機能はコンゴノカダイです。

その他、
  • 新規追加時に、titleフィールドを自動取得(URLが指すHTMLから<title>を切り出す)
  • 同じURLを参照するブックマークを複数個作成できないように修正(「編集」ページにとばす)
  • will_paginateプラグインを入れてページング処理
  • インデックスページのレイアウトをちょっとだけカスタマイズ
などちまちまと改良。

おもちゃなりに、ほんのりと体裁が整ってきたでしょうか。。。

Heroku (Gardenではなく本家のほう)に上げてみました。

http://toybookmark.heroku.com/

(データはlivedoor bookmarkからエクスポートしたもの)

0 件のコメント:

コメントを投稿