【问题标题】:Ruby on Rails - One layout page different contentRuby on Rails - 一个布局页面不同的内容
【发布时间】:2012-05-15 21:10:35
【问题描述】:

我对 Rails 很陌生,正在寻找指导。

我正在 Rails 上构建我的投资组合,我知道 Rails 的基本规则是“不要重复自己”。

我能否创建一个单独的布局页面来详细显示我的工作,但会生成多个页面,每个页面都有自己的内容。例如:www.mywork.com/nike 将具有与 www,mywork.com/pepsi 相同的布局但不同的内容。如果我这样做,我如何以它们的唯一名称提取某些图像/文本。

还是我只是创建静态页面并使用相同的样式表?

感谢您的帮助!

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-3 views portfolio


【解决方案1】:

看看这个 rails cast - http://railscasts.com/episodes/117-semi-static-pages

我同意您尝试做的并不是真正的“轨道方式”,但每当我创建页面(例如关于我们的页面和通常有一段文本的隐私页面)时,我都会使用上述链接中的技术并且将来可能会更新。

简而言之,您要做的就是创建一个名为 content_page 的模型,它有一个链接(字符串)、内容(文本)和标题(字符串)。然后你创建一个只有一个显示动作的控制器,看起来像这样 -

   class ContentPagesController < ApplicationController

     def show
       @content_page = ContentPage.find_by_permalink(params[:link])
       raise ActiveRecord::RecordNotFound, "Page not found" if @content_page.nil?
     end
   end

在你的表演动作视图中,你可以说 -

   @content_page.content
   @content_page.heading

获取该记录的内容和标题(或您分配给 ContentPage 的任何其他属性)。

然后在你的路线中,你可以在你的 routes.rb 底部有这样的东西(你把它放在底部,因为它是一条贪婪的路线)-

   match ':link' => 'content_pages#show' 

所以现在你可以说 www.mywork.com/nike 它将找到以 nike 作为链接的内容页面。我很简短,因为很值得一看 rails 的演员表。

正如我所说,上述技术只适用于基本内容页面,你应该为每个页面设置一个控制器,即使它只有一个索引操作:)

【讨论】:

    猜你喜欢
    • 2022-08-15
    • 2015-09-13
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2016-06-20
    • 2017-09-23
    • 2016-11-27
    相关资源
    最近更新 更多