首先,我想询问如何在创建表单中单击提交按钮后重定向。我有一个用于创建测验的表单,在他们点击提交后我想将它们重定向到链接'quiz /:id / add_question'其中:id是刚刚创建的测验的ID,但我只是被重定向到/测验它导致我的浏览器出现“连接已重置”错误。
这是我的测验表格:
<div>
<h2>Create Quiz</h2>
<%= form_for(@quiz) do |f| %>
<div>
<%= f.label :name %>
<%= f.text_field :name %> </br>
<%= f.label :subject %>
<%= f.text_field :subject %>
</div>
<%= f.submit "Submit" %>
<% end %>
</div>
我的测验控制器:
class QuizzesController < ApplicationController
def new
@quiz = Quiz.new
end
def create
@quiz = Quiz.new(quiz_params)
flash[:success] = "Quiz Created successfully" if @quiz.save
redirect_to 'quiz/' + @quiz.id.to_s + '/add_question'
end
private
def quiz_params
params.require(:quiz).permit(:name, :subject)
end
end
quiz /:id / add_question链接指向问题创建表单:
<div>
<%= form_for(@question) do |f| %>
<%= f.label :question %></br>
<%= f.text_field :question %></br>
<%= f.label :answer1 %></br>
<%= f.text_field :answer1 %></br>
<%= f.label :answer2 %></br>
<%= f.text_field :answer2 %></br>
<%= f.label :answer3 %></br>
<%= f.text_field :answer3 %></br>
<%= f.label :answer4 %></br>
<%= f.text_field :answer4 %></br>
<%= f.label :correct_id %></br>
<%= f.text_field :correct_id %></br>
<%= f.submit "Add question" %>
<% end %>
</div>
我的问题的另一部分是我如何在这里传递另一个参数来创建问题对象。我不希望用户输入该参数,因为参数应该是当前网址的id(quiz /:id / add_question)。
答案 0 :(得分:0)
首先,我认为你拼错了:
redirect_to 'quiz/' + @quiz.id.to_s + '/add_quesiton'
应该是
redirect_to 'quiz/' + @quiz.id.to_s + '/add_question'
但您应该使用可用的网址助手。
redirect_to quiz_add_question_path(@quiz.id)
假设这是路线的名称。您可以通过运行rake routes
对于当前测验的id,您可以设置隐藏属性,例如
<%= f.hidden_field :quiz_id, value: params[:id] %>