如何将paginate与anchor id结合起来

时间:2012-10-29 12:37:01

标签: ruby-on-rails

我对Ruby on Rails非常陌生并且在尝试修复公司网站上的一些错误时学习。我正在尝试对与特定锚点组合的记录集合进行分页,即当用户点击下一页/上一页时,分页发生并且用户登陆页面的特定部分。这就是我的代码目前的样子:

视图

<%= page_navigation_links @student_logs, :page %></p>

控制器:

@student_logs.paginate(:page => params[:page], :per_page => 10)

application_helper

def page_navigation_links(pages, param_name=:page)

  will_paginate(pages, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapHelper::LinkRenderer, :previous_label => '&larr;'.html_safe, :next_label => '&rarr;'.html_safe, :param_name => param_name)

end

这适用于我的分页,但我需要在此代码中引用“锚点ID”,例如学生日志,这样当用户导航到其他页面时,浏览器会将用户导航到带有id的标题:“student_logs”。

我无法弄清楚如何做到这一点。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:8)

我没有直接经验。但是,this link显示了一种方式。我无法测试,但你当然可以。

<%= will_paginate @posts, :params => {:anchor => i} %>

如果这样可行,那么您可以在助手中使用这种方式:

def page_navigation_links(pages, param_name=:page)
  will_paginate(pages, :params => {:anchor => "#ANCHOR"}, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapHelper::LinkRenderer, :previous_label => '&larr;'.html_safe, :next_label => '&rarr;'.html_safe, :param_name => param_name)
end

您可以根据需要替换#ANCHOR