Rails 参数未传递给控制器操作
Rails params not passing to controller action
这是我的控制器:
class RegularController < ApplicationController
before_filter :find_student
def regular_student
session[:page] = 'regular_student'
end
def generate_regular_student
@regular = RegularStudent.new()
@regular.codtitulo = params[:academic_title_id]
render :template => 'regular/_regular_student_output'
end
end
这是解决这个问题的重要途径:
get '/regular_student' => 'regular#regular_student'
post '/generate_regular_student' => 'regular#generate_regular_student'
这是我的 regular_student.html.rb
表格:
<%= form_for :generate_regular_student, url: "generate_regular_student" do |f| %>
<%= f.collection_select :id, @student.academic_titles, :academid_title_id, :name, {}, {class: "form-control
screen-only"} %>
<%= f.submit "Generar constancia", {class: 'btn btn-default'} %>
<% end %>
这是我的部分 _regular_student_output.html.erb
,我想在其中显示作为 @regular.codtitulo
的参数的 academic_title_id
,以确保我正确获取它:
<h1>Generated!</h1>
<h2>Title: <%= @regular.codtitulo %></h2>
问题是参数永远不会到达控制器。当我按下表单中的提交按钮时,终端输出以下内容:
Started POST "/generate_regular_student" for 172.16.2.67 at 2022-04-26 09:00:44 -0300
Processing by RegularController#generate_regular_student as HTML
Parameters: {"utf8"=>"✓","authenticity_token"=>"QjHc7k7NXlYgL1XlTiy6rYGgSvID+5II+YusNm7n+i3XT6vNwUzLUxmjG6aTEqAQP6zIKNsetAKpg2L3Qip4AA==", "generate_regular_student"=>{"academic_title_id"=>"221"}, "commit"=>"Generar constancia"}
因此参数生成正确,但由于某种原因从未到达控制器。当我在 _regular_student_output.html.erb
中使用 @regular.codtitulo
时,我只得到一个空白 <h2> </h2>
。
正如调试器评论的那样,参数已到达控制器。我的错误是在使用它的时候。而不是使用:
params[:academic_title_id]
我应该使用:
params[:generate_regular_student][:academic_title_id]
感谢调试器。非常感谢!
这是我的控制器:
class RegularController < ApplicationController
before_filter :find_student
def regular_student
session[:page] = 'regular_student'
end
def generate_regular_student
@regular = RegularStudent.new()
@regular.codtitulo = params[:academic_title_id]
render :template => 'regular/_regular_student_output'
end
end
这是解决这个问题的重要途径:
get '/regular_student' => 'regular#regular_student'
post '/generate_regular_student' => 'regular#generate_regular_student'
这是我的 regular_student.html.rb
表格:
<%= form_for :generate_regular_student, url: "generate_regular_student" do |f| %>
<%= f.collection_select :id, @student.academic_titles, :academid_title_id, :name, {}, {class: "form-control
screen-only"} %>
<%= f.submit "Generar constancia", {class: 'btn btn-default'} %>
<% end %>
这是我的部分 _regular_student_output.html.erb
,我想在其中显示作为 @regular.codtitulo
的参数的 academic_title_id
,以确保我正确获取它:
<h1>Generated!</h1>
<h2>Title: <%= @regular.codtitulo %></h2>
问题是参数永远不会到达控制器。当我按下表单中的提交按钮时,终端输出以下内容:
Started POST "/generate_regular_student" for 172.16.2.67 at 2022-04-26 09:00:44 -0300
Processing by RegularController#generate_regular_student as HTML
Parameters: {"utf8"=>"✓","authenticity_token"=>"QjHc7k7NXlYgL1XlTiy6rYGgSvID+5II+YusNm7n+i3XT6vNwUzLUxmjG6aTEqAQP6zIKNsetAKpg2L3Qip4AA==", "generate_regular_student"=>{"academic_title_id"=>"221"}, "commit"=>"Generar constancia"}
因此参数生成正确,但由于某种原因从未到达控制器。当我在 _regular_student_output.html.erb
中使用 @regular.codtitulo
时,我只得到一个空白 <h2> </h2>
。
正如调试器评论的那样,参数已到达控制器。我的错误是在使用它的时候。而不是使用:
params[:academic_title_id]
我应该使用:
params[:generate_regular_student][:academic_title_id]
感谢调试器。非常感谢!