rails:2929
From: Shin Morichika <ofl@c...>
Date: Fri, 5 Dec 2008 08:48:52 +0900
Subject: [rails:2929] Re: 部分テンプレートを使っている場合のRJSでの書き換え方法
Rails 2.X系で部分テンプレートが_zip.html.erb
その内容が
<% for zip in @zips -%>
<tr>
<td><%=h zip.xxx %></td>.......
</tr>
<% end -%>
といった内容と推測してお返事します。
この場合部分テンプレートにインスタンス変数@zipsが使われて
いるのであれば、
replace_htmlの引数で特に@zipsの値を渡してあげる必要は無い
かと思います。
なので
page.replace_html "zip", :partial => "zip"
という書き方になるのではないでしょうか。
もし部分テンプレートがインスタンス変数ではなくローカル変数で
<% for zip in zips -%>
.......
<% end -%>
といった形であれば、
page.replace_html "zip", :partial => "zip", :locals => {:zips => @zips}
となると思います。
それと
<table>
<span id='zip'><% render :partial=>@zips %></span>
</table>
の部分はHTML的には好ましくないので(インライン要素の中にブ
ロック要素
が入る)単に
<table id='zip'>
</table>
とした方がいいかと思います。
--
森近 真
uy4s-mrck@a...
On 2008/12/04, at 11:20, suna wrote:
> 最近Ajax on Railsを見ながらRJSを始めたものです。
>
> 検索ボタンを押したら該当する郵便番号を表示させたいのですが、
> render :partialの内容を
> 更新する方法がわからず、はまっています。
> page['zip'].replace_html で書き換えは可能なのです
> が、:partialの部分をどうすればいい
> かがわかりません。
> どのようにすればいいのか教えていただけると有り難いです。
> よろしくお願いします。
>
> −−−−−−−−−−−
> <h1>郵便番号一覧</h1>
> <div id="in_menu">
> <%= link_to 'New zip', new_zip_path %>
> </div>
> <div id="search_form">
> <%= text_field_tag(:search) %>
> <%= submit_to_remote 'submit', '検索',
> :url => {:action => 'search_rjs'},
> :with => "'search='+$F('search')"%>
> </div>
> <table>
> <span id='zip'><% render :partial=>@zips %></span>
> </table>
>
>
> −−−−−−−−−−−−−−−−−−−−−−−
> search = params[:search]
> @zips = Zip.address_to_zip(search,100)
> page['zip'].replace_html @zips, :partial => :zip
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>
--
ML: rails@r...
使い方: http://QuickML.com/
2926 2008-12-04 03:20 [suna4903@g... ] 部分テンプレートを使っている場合のRJSでの書き換え方法 -> 2929 2008-12-05 00:48 ┗[ofl@c... ] 2933 2008-12-05 15:06 ┗[suna4903@g... ]