制作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,因为它匹配所有东西.

那么你想如何创建、编辑和更新页面就取决于你了——你可以有一个管理界面,或者以某种方式将其构建到你的公共界面中.这种方法也可以从页面缓存中受益.

Ruby-on-rails相关问答推荐

如何从 gem 覆盖 JSONAPI.configure

带有块捕获的 FormBuilder 辅助方法在 ERB 中不起作用

当我必须更改 rspec 中的方法时,如何检测时间?

Rails 连接并包含连接表中的列

Heroku 应用程序上的远程 mysql 数据库

Rails 3 应用程序的 MySQL 集群 (NDB) 与 MySQL 复制 (InnoDB):优点/缺点?

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

blueprint/screen.css 未预编译

设计:手动加密密码并直接存储

查找日期时间与今天匹配的记录 - Ruby on Rails

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

什么是 Ruby 中的 Python 文档字符串?

rails 4.0, rake db:sessions:create

如何在 RoR 中实现成就系统

Ruby on Rails 错误无法加载此类文件 - 更少

关闭 Firefox 中文本字段的自动完成功能

如何使用 Ruby 在现有 PDF 上编辑或书写?

使用 ruby​​ on rails 活动记录插入多条记录

如何在 Rails 迁移中判断数据库类型?

按照给定 ID 数组的顺序按 ID 查找模型记录