Ruby on rails 表单提交后重定向到同一页面

Ruby on rails 表单提交后重定向到同一页面,ruby-on-rails,Ruby On Rails,我有一个表单,用户在其中输入数据。当他点击submit按钮时,我希望用户保持在同一页面上,并在同一页面上查看结果显示。我想要这个,因为我想控制他输入的数据 index.html.erb <h2>Test</h2> <%= form_tag do %> <%= hidden_field :project_id, :value => params[:project_id] %> <label for="project_

我有一个表单,用户在其中输入数据。当他点击
submit
按钮时,我希望用户保持在同一页面上,并在同一页面上查看结果显示。我想要这个,因为我想控制他输入的数据

index.html.erb

<h2>Test</h2>

<%= form_tag do %>
  <%= hidden_field :project_id, :value => params[:project_id] %>

  <label for="project_key">Project key</label>
  <%= text_field :project_key, required: true, value: params[:project_key] %>

  <% if @error_project_key %>
    <p style="color: red">Project key does not exist</p>
  <% end %>

  <%= submit_tag "Submit" %>
<% end %>

<em>
  <%= @project %>
</em>

<% if !@new_issues.nil? %>
  <% @new_issues.each do |issue|  %>
    <p>new issue : <%= issue %></p>
  <% end %>
<% end %>
class ImportController < ApplicationController

  def initialize
    @import = Something::Import.new
    @error_project_key = false
  end

  def index
    # Current project id.
    project_id = params[:project_id]

    # Get the given project key.
    project_key = params[:project_key]

    # TODO : don't submit anything if project key doesn't exist
    unless @import.project_exist?(project_key)
      @error_project_key = true
      return
    end

    # Get all issues of the project key.
    issues = @import.get_issues_by_project_key(project_key)

    # Create new issue based on given issue and project id.
    @new_issues = []
    issues.each do |issue|
      @new_issues << @import.insert_issue(project_id, issue)
    end

    # Stay on the same page and display the inserted issues.
    redirect_to :action => 'index', project_id: project_id, project_key: project_key
  end
end
get 'import', to: 'import#index'
post 'import', to: 'import#index'
问题是,当我第一次进入页面时,URL看起来像
http://localhost:3000/import?project_id=test-项目
提交后,如果项目密钥错误,我将丢失参数[:project\u key]

我想要的是:

  • 如果项目密钥错误,请保持在同一页面上,只显示红色错误消息,并且不要丢失用户编写的项目密钥
  • 如果项目键为ok,则显示结果问题