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,则显示结果问题