如何在页面上创建到锚点的路径?

时间:2015-04-09 06:48:26

标签: ruby-on-rails rails-routing link-to ruby-on-rails-4.2

Rails 4.2。我有一个单页网站,index.html.erb,控制器:访客。导航链接是“关于”,“服务”,“定价”等。导航链接如下:     

  • <%= link_to“关于”,锚:“section2”%>
  •     
  • <%= link_to“服务”,锚点:“section3”%>
  •     
  • <%= link_to“定价”,锚点:“section4”%>
  • 因为每个链接都有效,但网址看起来像这样     http://domain.com/#section2

    我希望网址如下所示,我希望匹配的单词“关于”指向所选的锚点     http://domain.com/about

    我尝试了routes.rb中的一些变体,但没有任何效果。     匹配'about',to:'visitor #index',anchor:“section2”,via :: get

    我还尝试在访问者控制器中进行重定向,关于操作如下     redirect_to action:“index”,anchor:“section2”

    似乎没什么用。有什么想法吗?

    2 个答案:

    答案 0 :(得分:3)

    考虑about是实际路线,您的link_to应如下所示:

    link_to 'about', about_path(anchor: 'section2')
    

    这将创建:http://domain.com/about#section2

    此处的关键是将锚点作为参数传递给foo_path(anchor: '..', ...)

    答案 1 :(得分:3)

    如果我理解正确,你会期待一些使http://domain.com/about指向http://domain.com/#about的魔法。

    好消息,这是可能的:)

    写下routes.rb以下行:

    get '/about', to: redirect('/#about')