Почему не работают кнопки jQueryUI и JavaScript, когда я использую will_paginate? - PullRequest
0 голосов
/ 19 июня 2011

В моем приложении я фильтрую записи по объектам, используя javascript, и отображаю их по частям на странице индекса места.Тем не менее, форма фильтра разрывается, когда я настроил will_paginate, они оба работают по отдельности, но не вместе.Что я тут не так делаю?

jQuery script

<script>
  $(function() {
    $(".venuetypes").buttonset();
  });

  $(function() {
    $(".areas").buttonset();
  });

  $(function() {
    $( "button, input:submit, a", ".filter_form_button" ).button();
    $( "a", ".form_filter_button" ).click(function() { return false; });
  });
</script> 

Форма фильтра

<div class="filter_options_container">
  <%= form_tag '', :method => :get, :id => 'filter_form' do %>

    <fieldset class="filter_form_fieldset venuetypes">
      <% Venuetype.all.each do |v| %>
        <p class="venuetype_check"><%= check_box_tag 'venuetypes[]', v.id, false, :id => "venuetype-#{v.id}" %>
        <label for="venuetype-<%= v.id %>"><%= v.name %></label></p>
      <% end %>
    </fieldset>

    <fieldset class="filter_form_fieldset areas">
      <% Area.all.each do |a| %>
        <p class="area_check"><%= check_box_tag 'areas[]', a.id, false, :id => "area-#{a.id}" %>
        <label for="area-<%= a.id %>"><p1><%= a.name %></p1></label></p>
      <% end %>
    </fieldset>

    <div class="filter_form_button">
      <p2><input type="submit" value="Filter"/></p2>
    </div>
  <% end %>
</div>

Диспетчер объекта

  def index
    if
      @venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
    else
      @venues = Venue.all
    end
    @venues = Venue.paginate :all, :page => params[:page], :per_page => 15
  end

Большое спасибо за любую помощь, она очень ценится!

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Вы перезаписываете переменную @venues, когда я думаю, что вы пытаетесь добавить нумерацию страниц в этот запрос.Попробуйте вместо этого:

def index
  if
    @venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
  else
    @venues = Venue.all
  end
  @venues = @venues.paginate :per_page => 15, :page => params[:page]
end
0 голосов
/ 19 июня 2011

Вы добавляете дополнительную запятую.

Вот как это должно быть:

Model.pagination :per_page => 15, :page => params[:page]

Итак, вы должны иметь это:

def index
  if
    @venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
  else
    @venues = Venue.all
  end
  @venues = Venue.paginate :per_page => 15, :page => params[:page]
end
...