diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb
index ed5ef1c72..0f5cd7ac2 100644
--- a/app/helpers/pagination_helper.rb
+++ b/app/helpers/pagination_helper.rb
@@ -4,11 +4,11 @@ module PaginationHelper
if records.any?
if params[:page] =~ /[ab]/ && !records.is_first_page?
- html << '
' + link_to("< Previous", params.merge(:page => "a#{records[0].id}"), :rel => "prev") + ''
+ html << '' + link_to("< Previous", nav_params.merge(:page => "a#{records[0].id}"), :rel => "prev") + ''
end
unless records.is_last_page?
- html << '' + link_to("Next >", params.merge(:page => "b#{records[-1].id}"), :rel => "next") + ''
+ html << '' + link_to("Next >", nav_params.merge(:page => "b#{records[-1].id}"), :rel => "next") + ''
end
end
@@ -29,7 +29,7 @@ module PaginationHelper
window = 4
if records.current_page >= 2
- html << "" + link_to("<<", params.merge(:page => records.current_page - 1), :rel => "prev") + ""
+ html << "" + link_to("<<", nav_params.merge(:page => records.current_page - 1), :rel => "prev") + ""
else
html << "" + "<<" + ""
end
@@ -69,7 +69,7 @@ module PaginationHelper
end
if records.current_page < records.total_pages && records.size > 0
- html << "" + link_to(">>", params.merge(:page => records.current_page + 1), :rel => "next") + ""
+ html << "" + link_to(">>", nav_params.merge(:page => records.current_page + 1), :rel => "next") + ""
else
html << "" + ">>" + ""
end
@@ -100,9 +100,15 @@ module PaginationHelper
html << ""
else
html << ""
- html << link_to(page, params.merge(:page => page))
+ html << link_to(page, nav_params.merge(:page => page)) # XXX
html << ""
end
html.join.html_safe
end
+
+ private
+
+ def nav_params
+ params.to_unsafe_h # XXX
+ end
end
diff --git a/app/helpers/posts_helper.rb b/app/helpers/posts_helper.rb
index 64ce28c6c..07b058739 100644
--- a/app/helpers/posts_helper.rb
+++ b/app/helpers/posts_helper.rb
@@ -5,17 +5,13 @@ module PostsHelper
def next_page_url
current_page = (params[:page] || 1).to_i
- dup_params = params.dup
- dup_params[:page] = current_page + 1
- url_for(dup_params).html_safe
+ url_for(nav_params.merge(page: current_page + 1)).html_safe
end
def prev_page_url
current_page = (params[:page] || 1).to_i
if current_page >= 2
- dup_params = params.dup
- dup_params[:page] = current_page - 1
- url_for(dup_params).html_safe
+ url_for(nav_params.merge(page: current_page - 1)).html_safe
else
nil
end
@@ -135,4 +131,10 @@ module PostsHelper
html.html_safe
end
+
+ private
+
+ def nav_params
+ params.to_unsafe_h # XXX
+ end
end