基本的にコントローラーといくつかのビューだけの非常にシンプルなアプリを作成しています。フォームを送信してから別のアクションにリダイレクトする方法がわかりません。
これが私のコードです:
# 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でどのように機能するかを理解するのに大いに役立ちました。