Ruby on rails Rails Ajax表单以添加新的关联记录

Ruby on rails Rails Ajax表单以添加新的关联记录,ruby-on-rails,ajax,ruby-on-rails-3,Ruby On Rails,Ajax,Ruby On Rails 3,我有一个活动表单,其中有一个场馆选择下拉列表。目前,如果要为活动添加新的场馆,用户必须导航到场馆表单,创建他们的场馆,然后导航回活动表单,这并不理想 我有一半是通过AJAX实现的,但还不完全实现。我在我的活动表单上有一个链接,它调用一个(twitter引导)模式,该模式包含场馆表单。场馆表单已设置为:remote=>true,提交时会创建一个新场馆,但模式/表单不会关闭,活动表单的场馆选择也不会刷新。我必须手动刷新页面以确认添加了新场地 VenueController创建操作如下所示,带有res

我有一个活动表单,其中有一个场馆选择下拉列表。目前,如果要为活动添加新的场馆,用户必须导航到场馆表单,创建他们的场馆,然后导航回活动表单,这并不理想

我有一半是通过AJAX实现的,但还不完全实现。我在我的活动表单上有一个链接,它调用一个(twitter引导)模式,该模式包含场馆表单。场馆表单已设置为
:remote=>true
,提交时会创建一个新场馆,但模式/表单不会关闭,活动表单的场馆选择也不会刷新。我必须手动刷新页面以确认添加了新场地

VenueController创建操作如下所示,带有respond to calling 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/victions中,我创建了create.js.erb,如下所示:

$('#townvenue').html("<%= escape_javascript(render(@town_venue)) %>");

有人能帮我做这个拼图的最后一块吗?

这只是一个提示。获取您的select id并使用
$('#select_box_id')将其附加到您的新场地。在您的.js.erb文件中附加('')

现在看起来很明显,我可以看到这将如何工作。但是,我用正确的id尝试了一下,但它似乎没有任何作用。我可以做些什么来确认create.js.erb文件确实被正确调用了吗?选项是否在optgroup中有关系?是的,您应该附加到optgroup,而不是select菜单。
<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>