Добрый день. Написала простой поиск в Ruby. В целом он рабочий, НО когда я в поиске удаляю текст, у меня отображается пустая страница. А должны отображать все пользователи. Ошибок никаких не выдает. Не могупонять, что я не правильно сделала... Может, кто-то, что-то подскажет? Прилагаю код. Без подсветки | 1: | 2: | 3: | 4: | 5: | 6: | 7: | 8: | 9: | 10: | 11: | 12: | 13: | 14: | 15: | 16: | 17: | 18: | 19: | 20: | 21: | 22: |
| 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 |
|
|
Без подсветки | 1: | 2: | 3: | 4: | 5: | 6: | 7: | 8: | 9: | 10: | 11: | 12: |
| 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 |
|
|
Без подсветки | 1: | 2: | 3: | 4: | 5: | 6: | 7: | 8: | 9: | 10: | 11: | 12: | 13: | 14: | 15: | 16: | 17: | 18: | 19: | 20: |
| 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) %>'); |
|
|
Спасибо!
|