当您点击“创建语言”时,我试图将一个部分纳入类似于这个模式的东西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