Saturday, June 14, 2008

Rails Tab

自分でタブを実装してみた。まだ完全じゃないけど、とりあえず。ポイントは、
  • フェードエフェクトでタブを切替え
  • タブにlink_to_remoteを貼り、これでrjsファイルを呼び出し、部分テンプレートを読むようにする
  • rjsファイルを呼び出す際に:idパラメータを渡し、それで表示する部分テンプレートを切り替えるようにする
  • link_to_remoteに部分テンプレートで表示する情報を:stocksパラメータとして渡す
  • rjsでは既に表示されているDOMをfadeし、delayした後、replace_html, appearする。
苦労した点は、
  • link_to_remoteがパラメータとしてobjectを渡せずstringかarrayしか渡せないようなので、helperで予め渡すオブジェクトから要素を抜き取って配列とした点。
  • rjsで、シリアルにfade, appearとしてもうまくいかず、delayを挟んだ点。
page[:panel].visual_effect :fade, :duration => 1.0
page.delay(1) do
  case params[:id]
  when '1'
    page[:panel].replace_html :partial => 'panel1'
    page[:panel].visual_effect :appear, :duration => 1.0
  when '2'
    page[:panel].replace_html :partial => 'panel2'
    page[:panel].visual_effect :appear, :duration => 1.0
  end
end

No comments: