Ruby on rails 3.2 显示脚本的输出而不路由到新视图[Rails]
我有一个简单的Rails应用程序,其中用户以form_标记的形式提交一个整数,Ruby脚本查找整数的主要因子,并在新视图中显示输出。如何使输出显示在与表单相同的视图中,而不是新的视图中 以下是我当前的代码: 路由。rb:Ruby on rails 3.2 显示脚本的输出而不路由到新视图[Rails],ruby-on-rails-3.2,Ruby On Rails 3.2,我有一个简单的Rails应用程序,其中用户以form_标记的形式提交一个整数,Ruby脚本查找整数的主要因子,并在新视图中显示输出。如何使输出显示在与表单相同的视图中,而不是新的视图中 以下是我当前的代码: 路由。rb: match '/primes', to: 'programs#primes' post '/factors', to: 'programs#factors' <%= form_tag('/factors') do %> <div class=
match '/primes', to: 'programs#primes'
post '/factors', to: 'programs#factors'
<%= 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 %>
def factors
n = Integer(params[:number])
.
.
.
# script finds prime factors, stores output in @output
end
<%= @output %>
primes.html.erb:
match '/primes', to: 'programs#primes'
post '/factors', to: 'programs#factors'
<%= 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 %>
def factors
n = Integer(params[:number])
.
.
.
# script finds prime factors, stores output in @output
end
<%= @output %>
factors.html.erb:
match '/primes', to: 'programs#primes'
post '/factors', to: 'programs#factors'
<%= 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 %>
def factors
n = Integer(params[:number])
.
.
.
# script finds prime factors, stores output in @output
end
<%= @output %>
因此,我想让应用程序在“/primes”中呈现@output,而不是路由到“/factors”。您可以告诉factors控制器操作使用与primes控制器操作相同的视图,如下所示:
def factors
# script finds prime factors, stores output in @output
render :action => 'primes'
end
您还需要将
移动到primes.html.erb,使其显示在那里您可以做一件事,将表单提交到同一页面,并在表单提交时使用一个标志,并根据设置或重置的标志值显示输出。如果你觉得需要的话,你可以使用javascript。明白了!我尝试了render:action
,但我把它放错了位置。谢谢你的帮助。