如何在 form_for 中创建一个带有按钮的 link_to?
How to create a link_to with a button to an action inside a form_for?
我有一个名为用户的资源。在编辑操作中,我有一个 form_for 来编辑用户信息。我想在表单内放置一个按钮以重定向到另一个操作。所以我这样做:
<%= form_for @user, html: {class: 'form-horizontal'} do |f| %>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<div class="form-group">
<%= f.label :name, "Name", class: "col-sm-4 control-label"%>
<div class="col-sm-8">
<%= f.text_field :name, required: "required", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= f.label :email, "Email", class: "col-sm-4 control-label"%>
<div class="col-sm-8">
<%= f.email_field :email, required: "required", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= link_to root_path do %>
<button class="btn btn-default" name="button">Go to Root</button>
<% end %>
</div>
<%= f.submit "Save", class: "btn btn-default" %>
</div>
</div>
<% end %>
问题是,当我单击 "Go to Root" 按钮时,它在更新操作中处理表单,就像我按下提交按钮一样。但是如果我改变
<div class="form-group">
<%= link_to root_path do %>
<button class="btn btn-default" name="button">Go to Root</button>
<% end %>
</div>
为
<div class="form-group">
<%= link_to root_path do %>
Go to Root
<% end %>
</div>
去root_path。为什么会发生这种情况以及为什么我不能使用 a 为该表单中的另一个操作创建 link?
默认情况下,表单按钮的类型为提交。您需要指定按钮类型。
尝试以下操作:
<button type="button" class="btn btn-default" name="button">Go to Root</button>
我有一个名为用户的资源。在编辑操作中,我有一个 form_for 来编辑用户信息。我想在表单内放置一个按钮以重定向到另一个操作。所以我这样做:
<%= form_for @user, html: {class: 'form-horizontal'} do |f| %>
<div class="row">
<div class="col-sm-8 col-sm-offset-2">
<div class="form-group">
<%= f.label :name, "Name", class: "col-sm-4 control-label"%>
<div class="col-sm-8">
<%= f.text_field :name, required: "required", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= f.label :email, "Email", class: "col-sm-4 control-label"%>
<div class="col-sm-8">
<%= f.email_field :email, required: "required", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= link_to root_path do %>
<button class="btn btn-default" name="button">Go to Root</button>
<% end %>
</div>
<%= f.submit "Save", class: "btn btn-default" %>
</div>
</div>
<% end %>
问题是,当我单击 "Go to Root" 按钮时,它在更新操作中处理表单,就像我按下提交按钮一样。但是如果我改变
<div class="form-group">
<%= link_to root_path do %>
<button class="btn btn-default" name="button">Go to Root</button>
<% end %>
</div>
为
<div class="form-group">
<%= link_to root_path do %>
Go to Root
<% end %>
</div>
去root_path。为什么会发生这种情况以及为什么我不能使用 a 为该表单中的另一个操作创建 link?
默认情况下,表单按钮的类型为提交。您需要指定按钮类型。
尝试以下操作:
<button type="button" class="btn btn-default" name="button">Go to Root</button>