制作Ruby on Rails应用程序的标准方法是什么,该应用程序将包含以下页面:
- 家
- 关于
- 联系
如果有人有链接或答案,我会感激,而不是仅仅说使用gem,因为我想学习如何用这种行为制作简单的网络apply.
制作Ruby on Rails应用程序的标准方法是什么,该应用程序将包含以下页面:
如果有人有链接或答案,我会感激,而不是仅仅说使用gem,因为我想学习如何用这种行为制作简单的网络apply.
取决于你想如何处理这些页面中的内容.
Approach #1 - store content in views
如果您只想将所有内容放在ERB视图中,那么一个非常简单的方法是创建一个PagesController
,其目的是处理静态页面.每个页面由控制器中的一个操作表示.
你的控制器.rb:
class PagesController < ApplicationController
def home
end
def about
end
def contact
end
end
路由.rb:
match '/home' => 'pages#home'
match '/about' => 'pages#about'
match '/contact' => 'pages#contact'
然后创建家.html.呃,大约.html.雇员再培训局,联系.html.应用/视图/页面下的erb视图.这些视图包含静态页面上所需的任何内容.默认情况下,他们将使用你的应用程序.html.雇员再培训局的布局.
你还需要查看page caching个,以提高自己的表现.
Approach #2 - store content in database
我使用的另一种方法是为静态页面制作一个非常基本的CMS.在本例中,页面在模型中表示.它使用friendly_id gem来处理每个页面的slug,这样就可以通过URL中一个漂亮的名称(例如,/about)而不是ID来检索它们.
页rb:
class Page < ActiveRecord::Base
attr_accessible :title, :content
validates_presence_of :title, :content
has_friendly_id :title, :use_slug => true, :approximate_ascii => true
end
你的控制器.rb:
class PagesController < ApplicationController
def show
@page = Page.find(params[:id])
render 'shared/404', :status => 404 if @page.nil?
end
end
显示html.雇员再培训局:
<%= raw @page.content %>
路由.rb:
match '/:id' => 'pages#show'
注意:将此条目放在路由的末尾.rb,因为它匹配所有东西.
那么你想如何创建、编辑和更新页面就取决于你了——你可以有一个管理界面,或者以某种方式将其构建到你的公共界面中.这种方法也可以从页面缓存中受益.