如何将paginate与anchor id结合起来

Mah*_*hab 8 ruby-on-rails

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

视图

<%= page_navigation_links @student_logs, :page %></p>
Run Code Online (Sandbox Code Playgroud)

控制器:

@student_logs.paginate(:page => params[:page], :per_page => 10)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这适用于我的分页,但我需要在此代码中引用"锚ID",例如学生日志,以便当用户导航到其他页面时,浏览器会将用户导航到ID为"student_logs"的标题".

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

Hun*_*der 8

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

<%= will_paginate @posts, :params => {:anchor => i} %>
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

您可以#ANCHOR根据需要进行更换.