簡體   English   中英

Rails Ajax Form添加新的關聯記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM