Ruby on rails 3.2 显示脚本的输出而不路由到新视图[Rails]

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=

我有一个简单的Rails应用程序,其中用户以form_标记的形式提交一个整数,Ruby脚本查找整数的主要因子,并在新视图中显示输出。如何使输出显示在与表单相同的视图中,而不是新的视图中

以下是我当前的代码:

路由。rb

  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
,但我把它放错了位置。谢谢你的帮助。