Залежить від того, як ви хочете обробляти вміст на цих сторінках.
Підхід №1 - зберігати вміст у поданнях
Якщо ви просто хочете розмістити весь вміст у поданнях ERB, то дуже простий підхід полягає у створенні PagesController
, метою якого є робота зі статичними сторінками. Кожна сторінка представлена однією дією в контролері.
pages_controller.rb:
class PagesController < ApplicationController
def home
end
def about
end
def contact
end
end
routes.rb:
match '/home' => 'pages#home'
match '/about' => 'pages#about'
match '/contact' => 'pages#contact'
Потім створіть перегляди home.html.erb, about.html.erb та contact.html.erb у розділі app / views / pages. Ці подання містять будь-який вміст, який ви хочете на ваших статичних сторінках. Вони за замовчуванням використовуватимуть макет application.html.erb вашого додатка.
Ви також захочете вивчити кешування сторінок, щоб підвищити продуктивність.
Підхід №2 - зберігати вміст у базі даних
Ще одним підходом, який я використав, є створення базової системи управління вмістом для статичних сторінок. У цьому випадку в моделі представлені сторінки. Він використовує самоцвіт friendly_id для обробки кульок для кожної сторінки, щоб їх можна було отримати за гарним іменем у URL-адресі (наприклад, / about), а не за ідентифікатором.
page.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
pages_controller.rb:
class PagesController < ApplicationController
def show
@page = Page.find(params[:id])
render 'shared/404', :status => 404 if @page.nil?
end
end
show.html.erb:
<%= raw @page.content %>
routes.rb:
match '/:id' => 'pages#show'
Примітка: поставте цей запис в кінці route.rb, оскільки він відповідає усьому.
Тоді як ви хочете створювати, редагувати та оновлювати сторінки, вирішувати вам - ви можете мати інтерфейс адміністратора або якось вбудувати його у свій загальнодоступний інтерфейс. Цей підхід також може отримати користь від кешування сторінок.