2012-05-08 2 views
1

Я использую шаблоны на основе HAML, и разбиение на страницы, похоже, сломано для меня с Kaminari. Я уверен, что это моя вина, но вот то, что мой шаблон выглядит следующим образом:Получение XHR pagination, работающего с HAML + Kaminari

:javascript 
    $(function() { 
    $('#events').html('<%= escape_javascript render(@events) %>'); 
    $('#paginator').html('<%= escape_javascript(paginate(@events, :remote => true).to_s) %>'); 
    }); 

    %ul.activity_list 
     #events 
     = render :partial => 'event' 

мой _event.html.haml выглядит следующим образом:

- @events.each do |event| 
    = display_event(event) 

И наконец:

%nav 
     %ul.pagination 
     #paginator 
      = paginate @events, :remote => true 

Что происходит теперь, когда я загружаю страницу, где должны отображаться разбитые события, я буквально вижу следующую разметку:

&lt;%= escape_javascript render(@events) %gt;

И это оказывает на сайте как:

<%= escape_javascript render(@events) %>

Что я делаю неправильно здесь, чтобы получить XHR включен пагинацию здесь?

UPDATE

Я обновил свой JavaScript на следующее по желанию Дилана:

:javascript 
    $(function() { 
    $('#events').html('#{escape_javascript render('event')}'); 
    $('#paginator').html('#{escape_javascript(paginate(@events, :remote => true).to_s)}'); 
    }); 

Это кажется XHR работает, но по некоторым причинам, он никогда не будет идти мимо страницы = 2. Эта конкретная выборка должна иметь всего 3 страницы, и она будет отображаться только между страницами 1 и 2. Любые причины для этого?

ответ

2

Вы пытаетесь использовать метки erb в файле haml. Вы должны использовать версию Haml по интерполирования рубиновый код (#{} вместо <%= %>):

:javascript 
    $(function() { 
    $('#events').html('#{escape_javascript render(@events)}'); 
    $('#paginator').html('#{escape_javascript(paginate(@events, :remote => true).to_s)}'); 
    }); 

Смотрите Haml documentation about this

+0

Это крэпс на - неопределенный метод 'MODEL_NAME» для строки: Class. Есть идеи? Кажется, он умирает на бит $ ('# events'). –

+0

И действительно, после того, как я прокомментирую javascript, все работает минус бит XHR. (очевидно) –

+0

Вы уверены, что '@ events' содержит ваши события, а не строку? –

Смежные вопросы