【问题标题】:How to create a route to an anchor on a page?如何在页面上创建到锚点的路由?
【发布时间】:2015-04-09 06:48:25
【问题描述】:

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

  • 每个链接都有效,但网址看起来像这样 http://domain.com/#section2

    我希望 url 如下所示,我希望匹配的单词“About”指向选定的锚点 http://domain.com/about

    我在 routes.rb 中尝试了其中一些变体,但没有任何效果。 匹配 'about',到:'visitors#index',锚点:“section2”,通过::get

    我还尝试在访问者控制器中进行重定向,操作如下 redirect_to 动作:“索引”,锚点:“section2”

    似乎没有任何效果。有什么想法吗?

  • 【问题讨论】:

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


      【解决方案1】:

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

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

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

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

      【讨论】:

        【解决方案2】:

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

        好消息,这是可能的:)

        写在你的routes.rb下面一行:

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

        【讨论】:

          猜你喜欢
          • 2011-03-06
          • 2016-07-06
          • 2019-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-29
          • 1970-01-01
          • 2015-01-19
          相关资源
          最近更新 更多