[前][次][番号順一覧][スレッド一覧]

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...       ]