在Rails中,可以在一个表单中使用多个提交按钮。这可以通过在表单中添加多个提交按钮并为它们分配不同的名称和值来实现。在控制器中,可以使用这些名称和值来区分不同的提交按钮,并执行相应的操作。
以下是一个简单的示例,展示了如何在Rails中的表单中使用多个提交按钮:
<%= form_with model: @user, local: true do |form| %>
<%= form.label :name %>
<%= form.text_field :name %>
<%= form.label :email %>
<%= form.text_field :email %>
<%= form.submit "Save" %>
<%= form.submit "Save and Continue" %>
<% end %>
在这个示例中,我们在表单中添加了两个提交按钮,一个用于保存用户信息,另一个用于保存并继续编辑用户信息。
在控制器中,我们可以使用params[:commit]
来获取提交按钮的值,并根据不同的值执行相应的操作。例如:
def update
@user = User.find(params[:id])
if @user.update(user_params)
if params[:commit] == "Save"
redirect_to @user, notice: "User was successfully updated."
elsif params[:commit] == "Save and Continue"
redirect_to edit_user_path(@user), notice: "User was successfully updated."
end
else
render :edit
end
end
在这个示例中,我们根据提交按钮的值来决定是重定向到用户详情页面还是继续编辑用户信息页面。
总之,在Rails中,可以使用多个提交按钮来实现不同的功能,并在控制器中根据提交按钮的名称和值来执行相应的操作。
领取专属 10元无门槛券
手把手带您无忧上云