diff options
author | Rhenium <rhenium@rhe.jp> | 2014-02-21 05:39:02 +0900 |
---|---|---|
committer | Rhenium <rhenium@rhe.jp> | 2014-02-21 05:39:02 +0900 |
commit | ba4853a8ac41a087b5e4e54a782969ca78842f84 (patch) | |
tree | 315a5f20ebc043530183de8bb6f1c3bbef32bf8b | |
parent | 5a6d3a389c622a0c9802a0b69b227bcbc88a2509 (diff) | |
download | aclog-ba4853a8ac41a087b5e4e54a782969ca78842f84.tar.gz |
fix pagination: can't render page 2 or later in user_discoveries
-rw-r--r-- | app/controllers/tweets_controller.rb | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/app/controllers/tweets_controller.rb b/app/controllers/tweets_controller.rb index 9a23739..c6daedc 100644 --- a/app/controllers/tweets_controller.rb +++ b/app/controllers/tweets_controller.rb @@ -94,20 +94,13 @@ class TweetsController < ApplicationController if params[:page] paginate_with_page_number(tweets) else - tweets = tweets.limit(params_count).max_id(params[:max_id]).since_id(params[:since_id]) - if tweets.length > 0 - @prev_url = url_for(params.tap {|h| h.delete(:max_id) }.merge(since_id: tweets.first.id)) - @next_url = url_for(params.tap {|h| h.delete(:since_id) }.merge(max_id: tweets.last.id - 1)) - end - tweets + tweets.limit(params_count).max_id(params[:max_id]).since_id(params[:since_id]) end end def paginate_with_page_number(tweets) - page = (params[:page] || 1).to_i - @prev_url = page == 1 ? nil : url_for(params.merge(page: page - 1)) - @next_url = url_for(params.merge(page: page + 1)) - tweets.limit(params_count).page(page) + @page = (params[:page] || 1).to_i + tweets.limit(params_count).page(@page) end def params_count @@ -115,6 +108,18 @@ class TweetsController < ApplicationController end def render(*args) + if @tweets + if @page + @prev_url = @page == 1 ? nil : url_for(params.merge(page: @page - 1)) + @next_url = url_for(params.merge(page: @page + 1)) + else + if @tweets.length > 0 + @prev_url = url_for(params.tap {|h| h.delete(:max_id) }.merge(since_id: @tweets.first.id)) + @next_url = url_for(params.tap {|h| h.delete(:since_id) }.merge(max_id: @tweets.last.id - 1)) + end + end + end + if @tweets && request.xhr? super(json: { html: render_to_string(partial: "tweet", collection: @tweets, as: :tweet, formats: :html), next_url: @next_url, |