我有一個事件窗體,它具有用於場地的選擇下拉菜單。目前,如果要爲活動添加新的場地,用戶必須導航到場地表單,創建場地,然後返回到事件表單,這不太理想。Rails Ajax窗體添加新的關聯記錄
我已經有一半通過AJAX得到這個工作,但它不是那裏。我在我的事件表單上有一個鏈接,用於調用包含場地表單的(twitter引導程序)模式。場地表格已被設置爲: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
在應用程序/視圖/場館我有create.js.erb看起來像這樣:
$('#townvenue').html("<%= escape_javascript(render(@town_venue)) %>");
(我幾乎可以肯定這是我錯了)。
#townvenue
是一個div我的活動形式中和自身的部分位於 應用程序/視圖/事件/ _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,它似乎沒有做任何事情。有什麼我可以做的,以確認create.js.erb文件肯定被正確調用? – Raoot
這些選項在optgroups中是否重要? – Raoot
是的,你應該追加到optgroup,而不是選擇菜單。 – Vilelm