【问题标题】:Link_to for static pagesLink_to 用于静态页面
【发布时间】:2014-06-07 08:11:45
【问题描述】:

我创建了一个基于论坛的网站,我想在页脚添加一些链接,例如“更多关于徽章”或“如何提问”。好吧,它们是静态页面,所以我真的不想通过控制器访问这些页面。例如,我想使用link_to 或其他可能的标签查看views/static_pages/badges.html.erb

如何在我的视图中直接进入某个页面?

【问题讨论】:

  • 我想推荐high_voltage gem,详情请查看:github.com/thoughtbot/high_voltage
  • 我真的需要为两页添加一个新的 gem 吗?我可以简单地向我的一个控制器添加一个像“badges”这样的空方法,并添加一个像“badges.html.erb”这样的页面和link_to badges方法。它会简单得多,我只是不想那样做,必须有一个更简单的方法。
  • 看来我并不孤单,这是您的选择,但为静态页面指定控制器等于添加 gem。所以,没有损失。

标签: ruby-on-rails link-to


【解决方案1】:

对于静态页面,您应该查看high_voltage gem。安装后,它将在您的视图目录中创建一个文件夹pages,并生成一个命名路由方法page_path。例如,如果您创建一个静态页面pages/static,那么您可以在您的视图中通过page_path('static') 引用它。

编辑:

如果您不想使用任何 gem,那么我建议您查看 this question

【讨论】:

    【解决方案2】:

    我们这样做:

    #config/routes.rb
    resources :pages, only: [:show] #-> sends params[:id] as /page_name
    
    #app/controllers/pages_controller.rb
    Class PagesController < ApplicationController
        def show
           render "pages/#{params[:id]}"
        end
    end
    

    这将允许您调用以下内容:

    = link_to pages_path("badges") # -> domain.com:3000/pages/badges
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2018-05-24
      相关资源
      最近更新 更多