我正在制作一个 super 简单的应用程序,本质上只是一个 Controller 和一些 View 。我不知道如何使表单提交然后重定向到另一个操作。
这是我的代码:
# 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
View 看起来像:
<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
的 View 我在其中处理数据并重定向到 show
.
此外,<%= form_tag "/wizard/calculate", method: "get" do %>
帮助准确提交表单数据。
感谢所有的回复,它对理解 Rails 中的工作原理有很大帮助。
最佳答案
我不太确定你的问题是什么。你在哪里#process form data here
你必须很好地处理表单数据。
如果您没有模型,您可以通过 params
访问发布的值。例如,如果您的表单上有一个名为“地址”的字段,您将使用 params[:address]
访问 Controller 中的值。
关于ruby-on-rails - 无模型的 rails 形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440705/