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