在Rails中,你可以在一个表单中设置多个提交按钮,并根据用户点击的按钮执行不同的操作。每个提交按钮都可以有一个不同的名称和值。
例如,你可以在表单中添加两个提交按钮,一个用于保存,另一个用于预览:
<%= form_with(model: @post, local: true) do |form| %>
<!-- form fields here -->
<%= form.submit "Save", name: "commit", value: "save" %>
<%= form.submit "Preview", name: "commit", value: "preview" %>
<% end %>
然后,在你的控制器中,你可以检查params[:commit]
的值来确定用户点击了哪个按钮:
def create
@post = Post.new(post_params)
case params[:commit]
when "save"
if @post.save
redirect_to @post, notice: 'Post was successfully created.'
else
render :new
end
when "preview"
# handle preview here
end
end
在这个例子中,如果用户点击"Save"按钮,params[:commit]
的值将是"save",如果用户点击"Preview"按钮,params[:commit]
的值将是"preview"。然后你可以在控制器中根据params[:commit]
的值执行不同的操作。
领取专属 10元无门槛券
手把手带您无忧上云