Rails Rails 中路由怎么配置 # 锚点?

yan1667 · 2016年08月04日 · 最后由 yan1667 回复于 2016年08月05日 · 2686 次阅读

不要以简单为理由删除我的贴子,我相信这个一定不简单。很多都知道怎么配置点。但是锚点。#号在路由中怎么配置呢?例如 URL:http://0.0.0.0:3000/tasks/686?page=2 我要在后面配置一个#号路由,锚点名字为 show_anchor 好像实现不了,为用 js 实现了其效果。但是老板不满意。而且这个分页插件是 kaminari 的插件,封装了,没办法加 link_to.

你的问题是这个么?:

Kaminari 怎么在 URL 里面增加锚点

#1 楼 @huacnlee 是的 kaminari 里面有个分页插件,怎么增加锚点。

#2 楼 @rikiwong 你这个但是在 path 里面的跳转的,插件自动封装了挑战,没有办法写 path

#3 楼 @mizuhashi 你的意思就是不能在路由中配置#咯?

这个意思?

<%= paginate @posts, params: { anchor: 'comments' } %>

#7 楼 @mimosa 首先感谢大神,再追问一下当问 page=nil 的时候不执行锚点,也就是第一页不执行锚点怎么做呢?我是这么写的 <% if params[:page] ==nil %> <%=paginate @task_details %> <%else%> <%=paginate @task_details, params:{:anchor => 'task_show_anchor'}%> <%end%>

但是当第一次点击第二页的时候地址栏的 url 有点奇怪,发生了变化。 是这样的http://localhost:3000/tasks/686?page=2 并没有将锚点加上,但是你点一圈其他页,第二次之后点第二页,锚点又会加上,就是第一次点第二页锚点不出现,是不是插件的 bug 啊。

9 楼 已删除

#9 楼 @mimosa 结果还是一样的,我估计可能是这样的,点击第一页为空,不加锚点,但是这个插件是同步执行,也就是在下一次点击的时候,锚点才会被去掉。

11 楼 已删除

#11 楼 @mimosa 结果还是一样,第一页自动加了锚点,而第二页锚点没了,我的需求是,第一页不需要锚点,其他页都需要锚点,现在的结果是,第一页和其他页都有锚点,而第二页却没有了锚点。

自定义一个 kaminari templates😅 或 通过 js 把第一页链接里的锚点替换掉

#13 楼 @mimosa 用 js 可以实现效果,这个我很早就做出来,大神谢谢你的回答。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号