2012-02-27 6 views
0

私は無限のページを作成しようとしています。このチュートリアルの後Rails 3.0どのようにエンドレスページを作成するには?

:私は私の見解で

def index 
@konkurrencer = Konkurrencer.find(:all).paginate(:page => params[:page], :per_page => 2) 
    respond_to do |format| 
     format.html 
     format.js { render :rjs => @konkurrencer } 
     end 
end 

<% @konkurrencer.each do |kon| %> 
<%= render :partial => 'konkurrencers/konkurrencer', :locals => { :kon => kon } %> 
<% end %> 

マイindex.js.rjs:

page.insert_html :bottom, :konkurrencer, :partial => 'konkurrencers/konkurrencer' 
if @konkurrencer.total_pages > @konkurrencer.current_page 
    page.call 'checkScroll' 
else 
    page[:loading].hide 
end 
私が持っている私のコントローラで http://railscasts.com/episodes/114-endless-page?view=comments

私のヘッダIこのJavaScript:

<%= javascript_include_tag 'jquery', 'endless' %> 

そしてendless.js:

var currentPage = 1; 

function checkScroll() { 
    if (nearBottomOfPage()) { 
    currentPage++; 
    new Ajax.Request('/konkurrencer.js?page=' + currentPage, {asynchronous:true, evalScripts:true, method:'get'}); 
    } else { 
    setTimeout("checkScroll()", 250); 
    } 
} 

function nearBottomOfPage() { 
    return scrollDistanceFromBottom() < 150; 
} 

function scrollDistanceFromBottom(argument) { 
    return pageHeight() - (window.pageYOffset + self.innerHeight); 
} 

function pageHeight() { 
    return Math.max(document.body.scrollHeight, document.body.offsetHeight); 
} 

document.observe('dom:loaded', checkScroll); 

何のAJAX呼び出し作られたか何かはありません。 index.js.rjsをindex.js.erbに移動する必要がありますか?それとも私はデフォルトのjavascriptを含んでいないからですか?

答えて

1

いいえ、私はあなたのブロックがjsに応答するためのブロックだと思います。あなたはそれがindex.js.rjsをレンダリングする場合は、あなただけ言うことができる必要があります:index.js.SOMEFORMATと呼ばれるファイルを探してください

def index 
    @konkurrencer = Konkurrencer.find(:all).paginate(:page => params[:page], :per_page => 2) 
    respond_to do |format| 
    format.html 
    format.js 
    end 
end 

。私はあなたの信じていない:rjs => @ koncurrencerは実際に働いている、私はあなたがブラウザのトラフィックを見れば、エラーのためにサーバーが500を返すと思うだろう。

関連する問題