ランプの中身(Ruby on Railsのシステム開発)
ランプの中身(Ruby on Railsのシステム開発)では、株式会社ケイビーエムジェイのRuby on Railsエンジニアが蓄積したノウハウを公開しています。Ruby on Railに関する技術解説や実践的なノウハウなど、開発現場の技術に則したコンテンツを随時追加していきます。 初心者の方でもわかりやすい技術解説を心がけています。リクエスト、ご質問も受け付けいますので、ご気軽にコメントを記述して下さい。

< Rails プラグイン : Column... | メイン | Rails プラグイン : CSS Gr... >

tnの中身(Ruby
2008.01.29

Rails プラグイン : Rails Widgets >Tabnavの使い方


 こんにちは。新人エンジニアtnです。
 今回ご紹介するのはSeeSawというデベロッパーにて開発されているRails Widgetsというプラグインです。Rails Widgetsは、複数のコンポーネントからなるプラグインですが、その中でも今回はTabnavを紹介したいと思います。
http://www.seesaw.it/en/toolbox/widgets

 このtabnavによってRailsアプリケーションにタブ・ナビゲーションを付けることができます。

まずはテキトーにコントローラを作成します。とりあえず、なんとなくで、Users,Items,Campaignsの3つにしてみましょう。
Railsプロジェクトのルートディレクトリで

ruby script/plugin install svn://svn.seesaw.it/widgets/trunk

を実行し、インストールしましょう。
tabnavを使うには
ruby script/generate tabnav main

を実行してください。そうすると、
      create  app/views/widgets
create app/views/widgets/_main_tabnav.rhtml

のメッセージとともに、ファイルが生成されます。ここでは、mainという名称のナビを作っていますが、もちろん任意で変更することが可能です。
そして、tabを挿入したいビュー(*.rhtml)に
<%= tabnav :main %>

という行を書き加えます。


そうすると以下の画像のように、タブバーが表示されるようになります。


実行結果1


タブバーの中に何か文字などを入れたい場合は、

<% tabnav :main do %>
ここにHTMLを書く
<% end %>

と書くことで


実行結果2
のようにすることもできます。


generateしたままのtabnavだと、生成したコントローラをただ表示するだけのようです。これではイマイチ使いどころがわからないような…。と思ったところ、生成されたapp/views/widgets/_main_tabnav.rhtmlを書き換えることで柔軟に対応できるようです。そのためには、_main_tabnav.rhtml上で現在使われている


controller_names.each do |name|
add_tab do |t|
t.named name.camelize
t.titled "Go to #{name.camelize}"
t.links_to :controller => name
end
end


の行を削除またはコメントアウトし、


add_tab do |t|
t.named '商品'
t.titled '商品のページへ'
t.links_to :controller => 'items'
end

add_tab do |t|
t.named 'キャンペーン'
t.titled 'キャンペーンのページへ'
t.links_to :controller => 'campaigns'
end


を挿入します。こうすると、以下の画像のようにUsersへのリンクをなくし、商品とキャンペーンのページだけリンクすることができます。


実行結果3


ちなみに、これらのコードを見るとおり、links_toメソッドは通常のlink_toメソッドと同じものなので、同じコントローラ内の別アクションへ移動することもできることがわかります。この他の使い方も、_main_tabnav.rhtmlにコメントとして書かれているので参考にしてみてください。


このように、Tabnavを使うことで、タブによるナビゲーションが比較的容易に実装できることがわかりました。それではまた次回。

コメント (0)  |トラックバック (0)

ブックマークに追加する Subscribe with livedoor Reader あとで読む

トラックバック URL

この記事にコメントする

ニックネーム:
メールアドレス:
URL:


KBMJのWebソリューション
Ruby on Rails Summer Festival 2008開催決定!!

TOPICS

2008/06/25
ZD Net Builder」の連載記事です。第四回は「Rubyでどう書く?:重複したRSSをまとめる」が掲載されました。

2008/05/30
ZD Net Builder」の連載記事です。第三回は「Rubyでどう書く?:Rubyで特定URLの画像パス一覧を表示する」が掲載されました。

2008/05/07
ZD Net Builder」に連載を始めました。第二回は「Rubyでどう書く?:RubyでPDF履歴書を作成する」が掲載されました。

2008/04/24
アットマーク・アイティ」に『 Rubyを使ってPaSoRi経由でSuicaの乗車履歴を取得し、GoogleMapsやGoogleEarthで表示する』が掲載されました。

カテゴリ

全体のRoR最新ブログ一覧

プロフィール

  • tn
  • 新人エンジニアtnです。

    このブログでは主にRuby on Railsのプラグインの紹介をして行きます。
    開発の手助けになれば幸いです。

    ■開発環境
    OS
    ・自宅ではUbuntu on VMware on Windows XP
    ・会社ではMac OS X
    Rails
    ・1.2.5

    ブログは主に自宅で書いています。

ブログの購読

RSS

timelog
株式会社ケイビーエムジェイロゴ