如何为同一页面的部分使用不同的路由?

时间:2011-07-31 16:46:01

标签: html ruby-on-rails ruby

我在Rails 3中开发并拥有一个具有以下结构的html文档:

<div id="one">

</div>

<div id="two">

</div>

<div id="three">

</div>

我可以通过转到以下地址链接到部分:/ index#one,/ index#two和/ index#three。是否可以在rails中提供这些特定的命名路由?类似的东西:

match '/one',   :to => 'pages#index#one'
match '/two',   :to => 'pages#index#two'
match '/three', :to => 'pages#index#three'

我宁愿实际命名路线,而不是将哈希放入地址栏,如果这是有道理的。

提前致谢。

1 个答案:

答案 0 :(得分:2)

在视图中,您可以使用:anchor参数修改命名路由,如下所示:

<%= link_to 'One', pages_path(:anchor => 'one') %>

我就是这样做的。

编辑:我想我误解了你的问题。您需要完全不同的URL,这些URL会重定向到同一页面上的不同锚点,对吗?

就个人而言,我认为这不是一个好主意,因为如果您有链接到文档中的不同部分,它们将产生页面重新加载,这对于锚点通常是不必要的。您还需要一些针对行为的JavaScript解决方法,如果按照常规方式完成,则由浏览器自动处理。