2013-07-22 35 views
0

好我的问题很简单,我有一种观点认为两个非常,非常相似的形式中,只有id使区别:提交丝束形式使用jQuery轨

<table width="100%"> 
<tr> 
<%= form_for ([@patient, @patient.treatments.build]),:html => { :id => "my_form2" } do |f|%> 
<th><%= f.collection_select :category_id, Category.find(:all), :id, :typ %></th> 
<th><%= f.text_field :content %></th> 
<th><%= f.hidden_field :note, :id => "canvascontent" %></th> 
<th><%= f.text_field :day, :value => Date.today %></th> 
<th><input type="button" value="Speichern" class = "btn btn-small btn-primary" id = "button1" onclick="sketch.toDataURL()"></th> 
<th><input type="button" onclick="sketch.clearRecording()" class="btn btn-small btn-danger" value="Löschen"></th> 
<% end %> 
</tr> 
</table> 

<table width="100%"> 
<tr> 
<%= form_for ([@patient, @patient.treatments.build]),:html => { :id => "my_form1" } do |f|%> 
<th><%= f.hidden_field :category_id, :value => findems(Ebm) %></th> 
<th><%= f.hidden_field :content , :id => "inputbox"%></th> 
<th><%= f.hidden_field :day, :value => Date.today %></th> 
<% end %> 
</tr> 
</table> 

,我想触发提交双方的只有一个提交按钮,所以我创建了一个按钮:

<input type="button" value="Speichern" class = "btn btn-small btn-primary" id = "button1" onclick="sketch.toDataURL()" 

而触发的同时提交的两种形式的jQuery函数:

$(document).ready(function() { 
$("#button1").click(function(){ 
$('#my_form1').trigger('submit'); 
$('#my_form2').trigger('submit'); 
}); 

但它不会工作,轨道总是只保存在我的函数中触发的那种形式,在这种情况下#my_form1。我认为我的控制器是要负责的,因为在第一个被保存后,它会重定向到另一个站点,这样第二个表单就不会被保存。但即时通讯Rails的初学者,并不知道如何过度这种行为。我的控制器:

def create 
    @patient = Patient.find(params[:patient_id]) 
    @treatment = @patient.treatments.create(params[:treatment]) 
    redirect_to patient_path(@patient) 
    end 

我想简单地删除我的控制器的最后一行但后来我得到的错误:

Missing template treatments/create, 
+0

看起来你需要在这里嵌套模型表单。看看这个railscast http://railscasts.com/episodes/196-nested-model-form-revised你也可以从这个http://blog.codeclimate.com/blog/2012/10/17/7-中受益-to-分解,脂肪的ActiveRecord的模型/ –

回答

1

在你的代码看,我真的不知道你为什么会想分别提交这两个表单...如果你真的想这样做,你可以将你所需要的所有参数传递给你的第一个表单,然后使用你的控制器中的参数。用手中的那些参数,你可以做任何你想做的事情,包括从你的控制器中创建另一个@例如。

从你的代码,我看到你正在使用params[:treatment]params[:patient_id],但我没有看到你的#my_form1表单中的那些参数。这些如何通过?