1

私は 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 の間でのみ反転します。これには何か理由がありますか?

4

1 に答える 1

2

Haml ファイルで erb タグを使用しようとしています。#{}(の代わりに<%= %>) ruby​​ コードを補間する haml のバージョンを使用する必要があります。

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

これについては Haml のドキュメントを参照してください。

于 2012-05-08T15:42:18.950 に答える