當您點擊「創建語言」時,我試圖將一個部分納入類似於這個模式的東西Rails Admin 。部分模態的軌跡(渲染部分來自不同的模型)
現在,我還沒有真正發現代碼是如何工作的,我試圖在這個Rails - AJAX a Modal Dialog?和自己的東西之間進行混合。
事情是,局部現在被渲染成模態。但是,當我點擊「保存」時,驗證將返回到「正常」創建新視圖,而不是直接在模態內顯示驗證錯誤。
如何直接在彈出的模態中顯示驗證錯誤?
當我保存時,我應該在某種程度上區分保存模式與正常保存,因爲此部分將從別處調用,並且需要將新創建的對象直接設置爲一個新的對象下。我想我需要與響應格式區分開來,然後使用JS將新ID設置爲DropDown ID?
這裏寫一些代碼到目前爲止。在包含部分的視圖中,它看起來像我在其他控制器上調用另一個控制器(因爲我在不同的控制器上 - 新視圖)。
$.get('<%= url_for :controller => 'customers', :action => 'new' %>',
function(data) {
$('#customer-modal').html(data);
}
);
然後將新的不同的請求格式之間的「customres」控制器distinguishs並呈現不同的部分(在這種情況下「_ajax_form.html.erb」):
if request.xhr?
render "_ajax_form", :layout => false
在該局部,我使用「simple_form_for @customer,:remote => true do | f] ....」,所以我想在最後提交應該看起來不同於標準,因爲這調用控制器上的正常「創建」?
<div class="modal-footer">
<%= f.button :submit, :class => 'btn primary' %>
<a id='cancel-form' class= "btn small info">cancel</a>
</div>
感謝所有幫助其澄清什麼,我做錯了,或者應該怎麼做我的Rails中的經驗和JS/AXAX還沒有經歷過..;)
- 編輯:我現在有這是模態中加載在我的特殊部分的一個版本,其中,將調用simple_form_for內稱爲「new_from_sale」一個單獨的行動:
simple_form_for @customer, :url => url_for(:action => 'new_from_sale', :controller => 'customers') do |f|
然後在控制器中,當這個新對象保存好的時候,我重定向到第一個被調用的視圖,新的id作爲參數,然後填充下拉菜單。在其他情況下,當新對象無法保存時,我需要以某種方式顯示仍以該模式顯示的錯誤。 到目前爲止都試圖直接使部分render :partial => "customers/ajax_form"
或歸還JS代碼render :js => "$('#sale_customer_id').val(#{@customer.id});"
就沒有工作..但我會繼續努力我的運氣..
感謝,並非所有事情都適用於我們的事業,但它提供了一些很好的提示。 即,我們使用模態內的部分,並單獨創建新的/編輯對象。在那裏,我們需要分開,我猜不要使用:remote => true,否則渲染不起作用。 – fisco