@sshkarupa

Sinatra+will_paginate+ajax как соединить?

Всем привет.

Пытаюсь прикрутить ajax к Sinatra и гему will_paginate. Will_paginate без ajax работает отлично. Вместе - пока не очень: при рендере страницы с данными подтягивается общий шаблон и дублируется верхнее меню и заголовок.

Так у меня выглядит layout.slim
doctype 5
html lang="en"
  head
    meta charset="utf-8"
    title = SITE_NAME
    link rel="stylesheet" href="/css/bootstrap.min.css" 
    link rel="stylesheet" href="/css/main.min.css"
body
  .container
    == yield


Так index.slim
.top-menu
  ul.nav.nav-pills.navbar-right
    li ...
.row
  .col-xs-12
    h1 Payments
    #payments
      == slim :content


Так content.slim
.table-responsive
  table.table.table-bordered.table-striped
    thead
      tr.active
        <...some code...>
    tbody
      - @payments.each do | payment |
        <...some code...>
== will_paginate(@payments)


В main.js добавил следующий код:
$(".pagination a").click(function() {
      $.ajax({
        type: "GET",
        url: $(this).attr("href"),
        success:function(result) {
          $("#payments").html(result);
        }
      });
      return false;
    });


Понимаю, что нужно как-то отключить layout у content.slim, но как это сделать в данном случае - не пойму.
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
@kPers
Ruby way like
Вот так пробовал?
get "/content" do
	slim :content, :layout => (request.xhr? ? false : :layout)
end
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы