好的,我的问题很简单,我在一个视图上有两个非常非常相似的表单,只有 id 有所不同:
<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');
});
但它不会工作,rails 总是只保存在我的函数中首先触发的表单,在这种情况下是#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,