在ror中提交表单后呈现页面

时间:2017-01-06 09:34:06

标签: jquery ajax ruby-on-rails-4

我有一个表单,我从中选择college_ids。当我选择college_id时,执行查询并将结果发送到其他形式的不同方法。我想在单页中显示这两个表单。

这是我的表格

<%= form_tag(student_index_path, :method=>'get') do %>

 <p>
 College <br />
<%= select("get", "clg", College.all.collect {|p| [ p.name, p.id ] }) %>
</p>


<p>
  <%= submit_tag 'Submit' %>
</p>


<% end %>

这是我的学生HTML

<%= form_tag(result_index_path, :method=>'get') do %>

<p>
 Year <br />
 <%= select("get", "stu", @students.collect {|p| [ p.name, p.id ] }) %>
</p>


<p>
 <%= submit_tag 'Submit' %>
</p>
<% end %>

在我的控制器中:

 def college
 end

 def student
           @students = Student.where(:college_id => params[:get][:clg])
  end
 def result
   @res = Data.where(:id => params[:get][:stu])  
 end

在我的result_path中,我从数据表中获取详细信息。

此代码正在运行。我正在尝试在同一页面显示大学和学生表单。我应该怎么做..

我已经尝试过使用ajax,但第二种形式即学生的形式依赖于大学形式。所以选择标签即&lt;%= select(“get”,“stu”,@ students.collect {| p | [ p.name,p.id]})%&gt;拥有在大学方法中定义的@students。

1 个答案:

答案 0 :(得分:0)

此问题的最简单解决方案如下:

1)为学生表格制作部分内容,即_student_form.html.erb

2)使用ajax选择大学后,在同一页面上显示部分内容。最初制作

<div id="StudentForm"></div>

保持空白。将大学表格设为ajaxed,然后提交大学表格将上述部分学生表格添加到同一页面。

提交大学表格的行动的变更将收集大学身份并获得该大学的学生。