0

我有一个简单的 Rails 应用程序,其中用户在 form_tag 表单中提交一个整数,一个 Ruby 脚本找到整数的素数,输出显示在一个新视图中。我怎样才能使输出显示在与表单相同的视图中而不是新的视图中?

这是我当前的代码:

路线.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 %>

程序控制器.rb

  def factors
    n = Integer(params[:number])
    .
    .
    .
    # script finds prime factors, stores output in @output
  end

因素.html.erb

  <%= @output %>

所以我希望应用程序做的是在“/primes”中呈现@output,而不是路由到“/factors”。

4

1 回答 1

1

您可以告诉因子控制器动作使用与素数控制器动作相同的视图,如下所示:

def factors
  # script finds prime factors, stores output in @output
  render :action => 'primes'
end

您还需要移动<%= @output %>到 primes.html.erb 以使其显示在那里

于 2013-02-27T12:10:22.277 回答