[英]Rails Ajax Form to add new associated record
我有一个活动表单,其中有一个针对场所的下拉列表。 当前,如果要为事件添加新场所,则用户不得不导航到场所表单,创建其场所,然后导航回事件表单,这不理想。
我已经通过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 / venue中,我有一个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>
任何人都可以帮助解决这个难题的最后部分吗?
这只是一个提示。 获取您的选择ID,并使用$('#select_box_id').append('<option value="<%= venue.value %>"><%= venue.name %></option>')
放在您的.js.erb文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.