搜索结果不显示在页面中

Ransack results does not display in the page


大家好,

我正在按照 https://www.botreetechnologies.com/blog/implementing-advanced-search-in-ruby-on-rails-with-ransack 上的教程尝试使用搜查 gem。 我想它在工作,因为当我使用本地控制台和检查本地服务器时,我的结果很好。但是,我的索引页面不显示结果,它一直显示所有学生的列表,url 也没有改变(我想它应该呈现类似 http://localhost:3000/students?utf8=%E2%9C%93&q%5Bname_cont%5D=o&commit=Search, but I keep getting http://localhoast:3000/students 的内容)

这是我的代码:

views/students/index.html.erb:

<p id="notice"><%= notice %></p>

<%= search_form_for @q, remote: true do |f| %>
 <%= f.label :name_cont, 'Full Name' %>
 <%= f.search_field :name_cont %>
 <%= f.submit %>
<% end %>

<h1>Students</h1>

<table>
 <thead>
   <tr>
     <th>Name</th>
     <th>Age</th>
     <th>Marks</th>
     <th colspan="3"></th>
   </tr>
 </thead>

 <tbody>
   <% @students.each do |student| %>
     <tr>
       <td><%= student.name %></td>
       <td><%= student.age %></td>
       <td><%= student.marks %></td>
       <td><%= link_to 'Show', student %></td>
       <td><%= link_to 'Edit', edit_student_path(student) %></td>
       <td><%= link_to 'Destroy', student, method: :delete, data: { confirm: 'Are you sure?' } %></td>
     </tr>
   <% end %>
 </tbody>
</table>

和controller/students_controller.rb :

 def index
    @q = Student.ransack(params[:q])
    @students = @q.result
    puts @students
  end

有谁知道问题出在哪里?
提前致谢!

我认为问题出在您的搜索表单中。在那个表格中,你有

<%= search_form_for @q, remote: true do |f| %>

remote: true 部分说使用 JavaScript 在页面上呈现结果而无需刷新页面。您在控制器中没有渲染 Javascript 的选项。尝试删除 remote: true 部分,您应该会在视图中看到结果。