我的应用程序有一个选择框供用户选择“地点”。如您所料,此选择框是一个表单。我在页面上的某处也有一个动作,它通过 AJAX 创建一个新的场地。创建新场地后,我想更新场地选择框以反映这一点。
我的解决方案是将选择框放在部分中,并从控制器中的创建操作中呈现部分。
<div id="venue_select" style="clear: both;">
<%= render :partial => 'venue/venue_select_box' %>
</div>
部分看起来像这样:
<%= f.collection_select :venue_id, @user_venues, :id, :name, :prompt => 'Select a venue' %>
其中 f 是表单引用:
<% form_for :shows do |f| %>
问题是 f 在部分中未定义,因此出现错误。一种解决方案是包含整个表单,但我觉得这不是必需的,因为我没有更新整个表单。关于如何解决这个问题的任何想法?