プラグインを使ってリファクタした箇所が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 件のコメント:
コメントを投稿