我有一个远程表单,它提交给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,所以我可以沿途更新一些谷歌地图标记。
此表单代码:
<%= 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 来捕捉响应,所以我可以在那里更新谷歌地图。无论哪种方式都很好,只要布局消失(尽管我仍然更喜欢 js.erb 方式)。
javascript 响应的服务器日志显示以下内容:
Rendered content/_search.html.erb (270.5ms)
Rendered content/search.js.erb within layouts/content (274.1ms)
但是页面根本没有更新。它似乎正在命中 javascript,并且部分似乎被调用了