我有一个活动表格,其中包含场地的选择下拉菜单。目前,如果要为活动添加新场地,用户必须导航到场地表单,创建他们的场地,然后导航回活动表单,这不太理想。
我已经通过 AJAX 完成了一半的工作,但还没有完成。我的活动表单上有一个链接,该链接调用包含场地表单的(twitter bootstrap)模式。场地表格已设置为:remote => true
并在提交时创建了一个新场地,但模式/表格没有关闭,并且活动表格的场地选择没有刷新。我必须手动刷新页面以确认添加了新场地。
VenueController 创建动作如下所示,响应调用 format.js
def create
session[:return_to] ||= request.referer
@venue = Venue.new(params[:venue])
respond_to do |format|
if @venue.save
format.js
else
format.html { render :action => "new" }
end
end
end
在 app/views/venues 我有 create.js.erb 它看起来像这样:
$('#townvenue').html("<%= escape_javascript(render(@town_venue)) %>");
(我几乎可以肯定这是我出错的地方)。
#townvenue
是我的事件表单中的一个 div,它本身是位于 app/views/events/_town_venue.html.erb 中的一个部分
<div id="townvenue">
<div>
<%= f.label :town_id, :class => 'control-label form_labels' %>
<%= f.collection_select :town_id, Town.order(:town), :id, :town, include_blank: true %>
</div>
<div>
<%= f.label :venue_id, "Venue", :class => 'control-label form_labels' %>
<%= f.grouped_collection_select :venue_id, Town.order(:town), :venues, :town, :id, :name, include_blank: true %><br /><a href="#myModal" role="button" data-toggle="modal">[Add new venue]</a><br />
</div>
</div>
有人可以帮忙解决这个难题的最后一部分吗?