Ruby on Rails - 一个布局页面不同的内容

Posted

技术标签:

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

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

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

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

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

感谢您的帮助!

【问题讨论】:

抱歉,无意冒犯,我去过一次,但您需要熟悉 Rails 入门,例如 Agile Web Development with Rails。 看this guides。初学者也可以。 【参考方案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 的演员表。

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

【讨论】:

以上是关于Ruby on Rails - 一个布局页面不同的内容的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails 如何使用 yield 进行布局?

我想用 link_to 滚动页面(ruby on rails)

Ruby on Rails 实时更新

在 Ruby on Rails 3.2+ 中流式传输部分视图

ruby on rails创建的页面訪问很慢

Ruby-on-Rails:如何摆脱“你被重定向”页面