0

「Ajax によるページネーション」で指定されているように、will_paginate ジェムを使用してページネーションに ajax を追加しようとしていますが、Firebug で正しい HTML 応答を確認できるところまで到達しましたが、実際には新しいコードが奇妙にレンダリングされません。足りる。

これが私の簡略化されたコードです:

インデックス アクション

def index  
  @videos = Video.paginate :page => params[:page], :per_page =>  per_page
end

index.html.haml

#box_content{:style => "padding: 1em;text-align:center;"}
  = render "video

_video.html.haml

- @videos.each do |video|
    %iframe{:width=>"200", :height=>"150", :src=>link_src(video.link), :frameborder=>"0", :allowfullscreen =>"true"}
%div.pageinfo
    = will_paginate @videos

アプリケーション.js

$(function () {  
    $('.pagination a').live("click", function () {  
        $.get(this.href, null, null, 'script');  
        return false;  
    });  
});

index.js.erb

$('#box_content').html("<%= escape_javascript(render("video")) %>");

will_paginate リンクをクリックしても何も起こりません。ネットワーク GET 応答を見ると、新しいページを示す次のように表示されます。

$('#box_content').html("<iframe allowfullscreen=\'true\' frameborder=\'0\' height=\'150\' src=\'http://www.youtube.com/embed/z52V60aZ7ro\' width=\'200\'><\/iframe>\n<div class=\'pageinfo\'>\n  <div class=\"pagination\"><a class=\"previous_page\" rel=\"prev start\" href=\"/?_=1339623038312&amp;page=1\">&#8592; Previous<\/a> <a rel=\"prev start\" href=\"/?_=1339623038312&amp;page=1\">1<\/a> <em class=\"current\">2<\/em> <a rel=\"next\" href=\"/?_=1339623038312&amp;page=3\">3<\/a> <a href=\"/?_=1339623038312&amp;page=4\">4<\/a> <a class=\"next_page\" rel=\"next\" href=\"/?_=1339623038312&amp;page=3\">Next &#8594;<\/a><\/div>\n<\/div>\n");
4

1 に答える 1

0

実際にJavascriptエラーが発生していたことがわかりました。Javascriptがjavascriptではなくhtmlとしてレンダリングされていたため、Firebugコンソールに表示されませんでした。ただし、firebugコンソールで応答javascriptを手動で実行すると、エラーが表示されます。

于 2012-07-09T17:46:25.187 に答える