Результаты Ransack не отображаются на странице - PullRequest
0 голосов
/ 23 марта 2020


Привет всем,

Я пытаюсь использовать драгоценный камень, после учебника по https://www.botreetechnologies.com/blog/implementing-advanced-search-in-ruby-on-rails-with-ransack. Я думаю, это работает, так как у меня хорошие результаты, когда я использую локальную консоль и когда я проверяю свой локальный сервер. Тем не менее, моя страница указателя не отображает результаты, она продолжает показывать список всех студентов, и URL-адрес также не меняется (я думаю, что это должно отображать что-то вроде http://localhost: 3000 / студентов? Utf8 =% E2% 9C% 93 & q% 5Bname_cont% 5D = o & commit = Search , но я продолжаю получать http://localhoast: 3000 / студентов )
Вот мой код:

просмотры / студенты / индекс. 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

У кого-нибудь есть идея, откуда может возникнуть проблема?
Заранее спасибо!

1 Ответ

1 голос
/ 23 марта 2020

Я считаю, что проблема в вашей форме поиска. В этой форме у вас есть

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

В части remote: true говорится, что используйте JavaScript для отображения результатов на странице без ссылки на страницу sh. В вашем контроллере нет опции рендеринга Javascript. Попробуйте удалить часть remote: true, и вы увидите результаты в своем представлении.

...