RoR: использование Ransack для поиска - PullRequest
0 голосов
/ 22 марта 2020

Я хотел бы искать пользователей по их имени

Мои маршруты

 get 'users/search_index'
 ...
 devise_for :users

В контроллере моего приложения

before_action :set_search

....

protected

  def set_search
   @q=User.ransack(params[:q])
  end
end

В контроллере моего пользователя

class UsersController < ApplicationController
  before_action :authenticate_user!
  before_action :set_search

  ...

  def search_index
    @q = User.ransack(params[:q])
    @users = @q.result
  end
end

На мой взгляд (search_index. html .erb)

<%= search_form_for @q, url: users_search_index_path do |f| %>
  <%= f.label :username %>
  <%= f.search_field :username %>
  <%= f.submit "Search" %>
<% end %>

<table id="users">
    <tr>
        <th>User Name</th>
    </tr>
    <% @users.each do |user| %>
    <tr>
        <td><%= user.username %>
    </tr>
    <% end %>
</table>

Когда я нажимаю кнопку поиска, ничего не происходит. У меня есть таблица, показывающая пользователей по их имени пользователя, которая должна обновляться (на самом деле я хотел бы, чтобы ничего не отображалось до нажатия кнопки поиска), но ничего не происходит.

Как мне заставить мой поиск работать ?

...