我的rails 3 form_tag上的ruby有问题。过去工作得很好。现在我意识到我需要第二个提交按钮(名为"选择标准")。按钮工作正常,调用正确的控制器方法等。由于某种原因,虽然表单的输入不会传递给params []哈希。有什么想法吗?
下面的示例(以前用于工作)和第二个按钮:
<fieldset>
<legend> Select energies for evaluation </legend>
<%= form_tag ge_insert_energies_url(:id => @m.id) do %>
<p>
<table border = "solid">
<tr>
<th> Isotope </th>
<th> Energy [keV]</th>
</tr>
<% @isos.each_with_index do |iso,i| %>
<% unless @glines[i]=="blank" %>
<% @glines[i].each do |line| %>
<tr>
<% if line == @glines[i].first %>
<td rowspan="<%=@glines[i].count%>"> <%= iso.isotope %></td>
<% end %>
<td> <%= line.energy %> </td>
<td><%=check_box_tag "energies[select][]",line.id,@data.in clude?(line.id)%>
</tr>
<% end %>
<% end %>
<% end %>
</table>
</p>
<p><div style = "float:left; width:auto">
<%= button_to "Submit", ge_insert_energies_url(:id => @m.id), :confirm => "Are you sure? Data from deselected lines will be deleted." %></div>
<%= button_to "Select Standard", ge_insert_energies_url(:id=>@m.id, :standard => true) , :confirm => "Are you sure? Data from deselected lines will be deleted."%>
</p>
<% end %>
</fieldset>
答案 0 :(得分:0)
注意: - 如果您使用的是form_tag,则提交内容应由submit_tag启动,而不是由button_to启动,因此我建议将操作部分保留在form_tag中,而不是在submit_tag / button_to中。 < / p>
我在这里发布您的问题的解决方案(为简单起见,我刚刚保留了2个字段):
<%= form_tag hold_value_visits_path(id: @visit.id) do %>
<div>
<%= label_tag 'first Name' %>
<%= text_field_tag :first_name %>
</div>
<div>
<%= label_tag 'last Name' %>
<%= text_field_tag :last_name %>
</div>
<div>
<%= hidden_field_tag :standard, false %>
</div>
<p>
<%= submit_tag 'Submit', id: 'simple_submit %>
<%= submit_tag "Second Submit', id: 'second_submit' %>
</p>
<% end %>
在第二次提交时,您希望将标准值传递为TRUE。 检查我添加的hidden_field,其默认值为false。
//on click of the second_submit you want it to be true.
$('#second_submit').on('cick', function(){
$('#standard_hidden').val(true);
});