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

时间:2012-05-15 21:10:35

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

我对rails非常陌生,正在寻找指导。

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

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

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

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

看看这个导演 - http://railscasts.com/episodes/117-semi-static-pages

我同意你要做的事情并不是真正的“轨道方式”,但每当我创建诸如关于我们和通常有一块文本的隐私页面之类的页面时,我都会使用上述链接中的技术并可能在将来更新。

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

   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的任何其他属性)。

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

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

所以现在你可以说www.mywork.com/nike会找到以nike为链接的内容页面。我非常简短,因为非常值得观看铁轨。

就像我说的那样,上述技术只适用于基本内容页面,你应该为每个页面配备一个控制器,即使它只有一个索引动作:)