リモートフォームがあり、アクションに送信されsearch
ます。の中にcontent#search
、次のものがあります。
respond_to do |format|
#format.html {}
format.js {}
end
search.js.erb
内部に次のファイルがあります。
$('#ajaxstuffhere').html("<%= escape_javascript(render :partial => 'search') %>");
div
残念ながら、これはメイン ページの をまったく変更しません。
のコメントを外すと、内容format.html {}
が更新されます。残念ながら、これはコントローラーのデフォルト レイアウトでレンダリングされます。div
search.html.erb
私が望むのは、このコンテンツをレイアウトなしでレンダリングすることです。理想的にはJavaScriptを使用して、途中でいくつかのGoogleマップマーカーを更新できるようにします.
このフォーム コード:
<%= form_tag({:action => 'search'},:id => 'searchForm', :remote => true) do %>
次の出力が生成されます。
<form accept-charset="UTF-8" action="/search" data-remote="true" id="searchForm" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
誰が私が欠けているかを教えてもらえますか?
編集:私は考えていました...パーシャルがHTMLとして返された場合、とにかく応答をキャッチするためにjavascriptを叩くので、そこでGoogleマップを更新できます。レイアウトがなくなっている限り、どちらの方法でも問題ありません (ただし、js.erb の方法を使用することをお勧めします)。
JavaScript 応答のサーバー ログには、次のように表示されます。
Rendered content/_search.html.erb (270.5ms)
Rendered content/search.js.erb within layouts/content (274.1ms)
しかし、ページはまったく更新されません。javascriptにヒットしているようで、パーシャルが呼び出されているようです