我正在制作一个超级简单的应用程序,它本质上只是一个控制器和一些视图。我不知道如何使表单提交然后重定向到另一个动作。
这是我的代码:
# app/controllers/wizard_controller.rb
class WizardController < ApplicationController
def calculate
# process data from form here
redirect_to controller: 'wizard', action: 'show'
end
def show
# print processed data here
end
end
这是wizard#calculate
视图的样子:
<div class="alert alert-info">
<h2>Get advice on where to live in 3 easy steps!</h2>
</div>
<br/>
<%= form_tag(:controller => "wizard", :action => "calculate") do %>
... form fields ...
<%= submit_tag("Submit") %>
<% end %>
此时,由于该行之前没有条件语句,因此将立即/wizard/calculate
重定向到。/wizard/show
redirect_to ...
编辑:使用 twitter 上的响应解决
我基本上是在尝试获取表单数据并在同一个操作中处理它们。我通过拆分calculate
为setup
具有表单的视图以及calculate
我处理数据并重定向到的位置来解决此问题show
。
此外,<%= form_tag "/wizard/calculate", method: "get" do %>
帮助准确提交表单数据。
感谢您的所有回复,这对了解它在 Rails 中的工作方式有很大帮助。