RailsのJS機能を使う(表示非表示切り替え)

RailsではJSとの連携が簡単に取れるようになっている。
と、どっかに書いてあったので、JSがまったく出来ないさくさんが無謀にも挑戦。

タグデータ書き換え用フォームを出し入れしてみることにした。
「追加」っていう文字を押すと追加用テキストフォームが出てきてSAVEを押すと消える。


↓内容に間違えがあったので以下で修正しました、(4/17)
http://d.hatena.ne.jp/sakusan_net/20080417/1208399227

<%= javascript_include_tag :defaults %>

<%= link_to_function "<b>[追加]</b>","Element.toggle('filter')"%>
  
<div id="filter" style="display: none">
  <%= form_remote_tag :update => 'filter', 
      :url => {:action => 'add_tags', :id => @charimg.id}%>		
  <%= text_field_tag 'tags', "" , :size => 40 %>
  <%= submit_tag 'Save' %>
  </form >
</div>

JSまったく分からないッ子なわけですが、link_to_functionで文字クリックしたときにJS構文が走るっぽい。
一応Elementに関してだけは調べたわけですが、この場合filterのIDのDIV要素がクリックされたときにON/OFFする。

<%= link_to_function "<b>[追加]</b>","Element.toggle('filter')"%>

[追加]をクリックされると下のdivのfilterのところが表示される。

  <%= form_remote_tag :update => 'filter', 
      :url => {:action => 'add_tags', :id => @charimg.id}%>		

で、form_remote_tagはリフレッシュ無しでコントローラを実行してくれるっぽい。
リロード無しでいきなりデータが書き換わります。

とりあえずの罠が
<%= javascript_include_tag :defaults %>

こいつ#。
rails 1.2.3では無くても動いてたっぽいのに、rails2.0からはどうも無いとうごかないっぽい#。
こいつのせいで2時間ちかく時間を浪費した・・・orz