fis*_*sco 5 javascript ajax modal-dialog partial ruby-on-rails-3
当你点击"创建语言"时,我试图将一个部分包含在类似于这个Rails Admin的模态中.
现在因为我还没有真正发现代码是如何工作的,我试着在这个Rails - AJAX模态对话框之间进行混合?和某些东西.
问题是,部分现在呈现为模态.但是当我点击"保存"时,验证将返回到"正常"创建新视图,而不是直接在模态中显示验证错误.
如何直接在弹出模式中显示验证错误?
当我保存时,我应该以某种方式区分这个模态的保存和普通保存,因为这个部分将从其他地方调用,并且需要将新创建的对象直接设置为下拉列表中的新对象.我想我需要区分响应格式然后使用JS将新ID设置为DropDown id?
这里写了一些代码到目前为止.在我包含部分的视图中,它看起来像我调用另一个控制器(因为我在不同的控制器 - 新视图).
$.get('<%= url_for :controller => 'customers', :action => 'new' %>',
function(data) {
$('#customer-modal').html(data);
}
);
Run Code Online (Sandbox Code Playgroud)
然后,"customres"控制器中的new区分不同的请求格式并呈现不同的部分(在本例中为"_ajax_form.html.erb"):
if request.xhr?
render "_ajax_form", :layout => false
Run Code Online (Sandbox Code Playgroud)
在这部分中,我使用"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>
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助澄清我做错了什么或者应该怎么做,因为我在Rails和JS/AXAX方面的经验还不太有经验..;)
simple_form_for @customer, :url => url_for(:action => 'new_from_sale', :controller => 'customers') do |f|
然后在控制器中,当这个新对象的保存正常时,我重定向到第一个被调用的视图,其中新的id作为param然后填充下拉列表.在else的情况下,当无法保存新对象时,我需要以某种方式显示仍然在该模态中的错误.到目前为止,两者都试图直接渲染部分render :partial => "customers/ajax_form"
或回馈JS代码render :js => "$('#sale_customer_id').val(#{@customer.id});"
还没有工作..但我会继续试试我的运气..
下面是我为回答类似问题( Rails 和模态 jquery 对话框表单)而编写的模态表单的基本示例:
https://github.com/ramblex/modal-form
您需要添加:remote => true
到加载到对话框中的表单。这将导致 JS 格式从创建操作中呈现。然后,您可以在 create.js.erb 中处理响应。
归档时间: |
|
查看次数: |
5947 次 |
最近记录: |