Ошибка объединения фильтров с 'has_scope' и гемом Ajax в Rails - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь создать страницу, где пользователь может комбинировать фильтры: города и: сектора при вызове модели Entreprise. Настройка работала хорошо, когда у меня был только: city, но когда я добавил: сектор, страница больше не обновлялась. Что я делаю не так, пожалуйста? Кто-нибудь знает, как объединить эти фильтры, пожалуйста?

Моя страница указателя

  <div class="col-md-12">
    <%= form_tag events_path, method: 'get', id: "events_search" do %>
      <% @cities = Event.all.distinct.pluck(:city) - ["", nil] %>
      Filter by cities:
      <% @cities.each do |city| %>
        <div class="btn btn-default">
          <%= check_box_tag "by_cities[]", city %> <%= city %>
        </div>
      <% end %>
      <% @sectors = Event.all.distinct.pluck(:sector) - ["", nil] %>
      Filter by sector:
      <% @sectors.each do |sector| %>
        <div class="btn btn-default">
          <%= check_box_tag "by_sectors[]", sector %> <%= sector %>
        </div>
      <% end %>
    <% end %>

    <br>
  </div>


</div>

<div id="events"><%= render 'principal' %>  </div>

</div>
<script type="text/javascript">
    $(function () {
        $('input[type=checkbox]').change(function () {
            $.get($('#events_search').attr('action'),
                $('#events_search').serialize(), null, 'script');
            return false;
        });
        $('#events_search').submit(function () {
            $.get(this.action, $(this).serialize(), null, 'script');
            return false;
        });
    });

</script>

Мой контроллер выглядит так:

class EventsController < ApplicationController
  before_action :authenticate_user!
  has_scope :by_cities, type: :array
  has_scope :by_sectors, type: :array

  def index
    @events = apply_scopes(Event).all.order("created_at DESC")

  end

Моя модель:

scope: by_cities, -> city {where (: city => city)} область действия: by_sectors, -> сектор {где (: сектор => сектор)}

index.js.erb

$('#events').html('<%= escape_javascript(render('principal')) %>')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...