Добрый день. Написала простой поиск в Ruby. В целом он рабочий, НО когда я в поиске удаляю текст, у меня отображается пустая страница. А должны отображать все пользователи. Ошибок никаких не выдает. Не могупонять, что я не правильно сделала... Может, кто-то, что-то подскажет? Прилагаю код. Код | persons_controller.rb
class PersonsController < ApplicationController def index @persons = User.all end
def load @persons = User.paginate(page: params[:page], per_page: 30) respond_to do |format| format.html format.js end render layout: false end
def search @params = params[:search].split("=").last @persons = User.search(@params).paginate(page: params[:page], per_page: 30) respond_to :js end end
|
Код | models/user.rb
class User < ApplicationRecord validates :full_name, presence: true def self.search(params) if params || params != "" User.all.where("LOWER(full_name) LIKE :search OR LOWER(title) LIKE :search", search: "%#{params}%") else User.all end end end
|
Код | views/persons/load.html.erb
<form class="input-field col s8" action="/persons" > <i class="material-icons prefix" aria-hidden="true">search</i> <%= form_tag "", url: persons_load_path, role: "search", remove:true, method: :get do %> <%= text_field_tag :search, nil, class: "search_persons"%> <% end %> </form> <div id='persons' class="person_tbody_content"> <%= render partial: "persons/person"%> </div> <%= will_paginate @persons %> <script type="text/javascript"> $(".search_persons").keyup(function() { $.ajax({ url: '/persons/search', data: {search: $(this).serialize()} }); }); </script>
|
Код | views/persons/search.jsl.erb
$(".person_tbody_content").html("<%= j render(:partial => '/persons/person')%>"); $('.pagination').replaceWith('<%= j will_paginate (@persons) %>');
|
Спасибо!
|