Phụ thuộc vào cách bạn muốn xử lý nội dung trong các trang đó.
Phương pháp tiếp cận số 1 - lưu trữ nội dung trong các chế độ xem
Nếu bạn chỉ muốn đưa tất cả nội dung của mình vào dạng xem ERB, thì một cách tiếp cận rất đơn giản là tạo một PagesController
tệp có mục đích là xử lý các trang tĩnh. Mỗi trang được thể hiện bằng một hành động trong bộ điều khiển.
pages_controller.rb:
class PagesController < ApplicationController
def home
end
def about
end
def contact
end
end
route.rb:
match '/home' => 'pages#home'
match '/about' => 'pages#about'
match '/contact' => 'pages#contact'
Sau đó, tạo các chế độ xem home.html.erb, about.html.erb và contact.html.erb trong app / views / pages. Các dạng xem này chứa bất kỳ nội dung nào bạn muốn trên các trang tĩnh của mình. Theo mặc định, họ sẽ sử dụng bố cục application.html.erb của ứng dụng của bạn.
Bạn cũng sẽ muốn xem xét bộ nhớ đệm trang để tăng hiệu suất cho mình.
Phương pháp tiếp cận số 2 - lưu trữ nội dung trong cơ sở dữ liệu
Một cách tiếp cận khác mà tôi đã sử dụng là tạo một CMS rất cơ bản cho các trang tĩnh. Trong trường hợp này, các trang được thể hiện trong mô hình. Nó sử dụng đá quý Friendly_id để xử lý các slugs cho mỗi trang để chúng có thể được truy xuất bằng một cái tên đẹp trong URL (ví dụ: / about) thay vì ID.
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 %>
route.rb:
match '/:id' => 'pages#show'
Lưu ý: đặt mục nhập này ở cuối route.rb vì nó khớp với mọi thứ.
Sau đó, bạn muốn tạo, chỉnh sửa và cập nhật trang như thế nào là tùy thuộc vào bạn - bạn có thể có giao diện quản trị hoặc xây dựng nó vào giao diện công khai của bạn bằng cách nào đó. Cách tiếp cận này cũng có thể được hưởng lợi từ bộ nhớ đệm trang.