让XHR分页与HAML + Kaminari合作

时间:2012-05-08 15:28:06

标签: ruby-on-rails ruby pagination haml kaminari

我正在使用基于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分页?

更新

根据Dylan的要求,我已将我的javascript更新为以下内容:

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

似乎XHR正在运作,但出于某种原因,它永远不会超过page = 2。这个特殊的提取应该总共有3页,它只会在第1页和第2页之间翻转。这有什么原因吗?

1 个答案:

答案 0 :(得分:2)

您正在尝试在haml文件中使用erb标记。你应该使用haml版本的插值ruby代码(#{}而不是<%= %>):

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

请参阅Haml documentation about this