我有一个非常简单的表格,在我尝试重新提交之前可以正常工作。之后,它会更新记录而不是创建新记录:
在我看来,我有这个:
#new_order_form
= render 'form'
我的表格部分:
= semantic_form_for [@location, @order], :remote => true do |f|
-if @order.errors.any?
#notice{:class=>'alert alert-block alert-error fade in'}
%a{:class=>"close", :data=>{:dismiss=>"alert", :href=>"#"}}
x
%h3
= pluralize(@order.errors.count, "error")
- @order.errors.full_messages.each do |msg|
= msg
%br
%table{:class => 'table table-bordered', :style=> {width: '50%'}}
%tr
%td= f.text_field :product_order_id, :placeholder => "Order ID"
在我的 create.js 中:
$("#new_order_form").html("<%= escape_javascript(render("form")) %>");
这可以很好地创建订单并呈现错误(如果存在)。
问题是:如果我在不刷新页面的情况下输入另一个订单号,它会更新之前创建的记录,而不是创建一个新记录。
查看表单代码,我可以看到提交操作已替换为更新。
我试图用这个替换代码:
= semantic_form_for [@location, @order], :remote => true do |f|
#new_order_form
= render 'form', :f => f
这在 create.js
$("#new_order_form").html("<%= escape_javascript(render :partial => 'form', :locals => {:f => @order}) %>");
这也不起作用并抱怨无效的文本字段。
做这个的最好方式是什么?谢谢