0

リモートフォームがあり、アクションに送信され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 {}が更新されます。残念ながら、これはコントローラーのデフォルト レイアウトでレンダリングされます。divsearch.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にヒットしているようで、パーシャルが呼び出されているようです

4

1 に答える 1