ユーザーがform_tagフォームで整数を送信し、Rubyスクリプトが整数の素因数を検出し、出力が新しいビューに表示される単純なRailsアプリがあります。出力が新しいフォームではなくフォームと同じビューに表示されるようにするにはどうすればよいですか?
これが私の現在のコードです:
ルート.rb:
match '/primes', to: 'programs#primes'
post '/factors', to: 'programs#factors'
primes.html.erb:
<%= form_tag('/factors') do %>
<div class="field">
<p>Enter an integer greater than 1:</p>
<p><%= text_field_tag :number %></p>
</div>
<div class="actions">
<p><%= submit_tag("Find factors") %></p>
</div>
<% end %>
programs_controller.rb:
def factors
n = Integer(params[:number])
.
.
.
# script finds prime factors, stores output in @output
end
factor.html.erb:
<%= @output %>
したがって、アプリに実行させたいのは、「/ factor」にルーティングするのではなく、「/primes」で@outputをレンダリングすることです。