2013-07-22 61 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表單中的那些參數。這些如何通過?