11.3. 编写应用程序
如果要从头开始启动 Rails 应用程序,必须先安装 Rails gem,然后才可编写应用程序。
流程
安装 Rails gem:
$ gem install rails
输出示例
Successfully installed rails-4.3.0 1 gem installed
安装完 Rails gem 后,使用 PostgreSQL 创建一个新应用程序,作为数据库:
$ rails new rails-app --database=postgresql
更改至新应用程序目录:
$ cd rails-app
如果您已有应用程序,请确保
Gemfile
中存在pg
(postgresql) gem。如果尚无应用程序,则通过添加 gem 来编辑Gemfile
:gem 'pg'
使用所有依赖项生成新的
Gemfile.lock
:$ bundle install
除了将
postgresql
数据库与pg
gem 结合使用外,您还必须确保config/database.yml
正在使用postgresql
适配器。请确保更新了
config/database.yml
文件中的default
部分,如下所示:default: &default adapter: postgresql encoding: unicode pool: 5 host: localhost username: rails password: <password>
创建应用程序的开发和测试数据库:
$ rake db:create
这会在您的 PostgreSQL 服务器中创建
development
和test
数据库。
11.3.1. 创建欢迎页面
由于 Rails 4 在生产中不再提供静态 public/index.html
页面,您必须创建一个新的 root 页面。
要想具有自定义欢迎页面,必须执行以下步骤:
- 使用 index 操作创建控制器。
- 为 welcome 控制器 index 操作创建 view 页面。
- 使用所创建的 controller 和 view 创建一个提供应用程序 root 页面的路由。
Rails 提供了一个生成器,用于完成您所有必要的步骤。
流程
运行 Rails 生成器:
$ rails generate controller welcome index
已创建所有必要文件。
按如下方式编辑
config/routes.rb
文件中第 2 行:root 'welcome#index'
运行 rails 服务器以验证页面是否可用:
$ rails server
在浏览器中访问 http://localhost:3000 即可查看您的页面。如果没有看到该页面,请检查输出至服务器的日志进行调试。
11.3.2. 为 OpenShift Container Platform 配置应用程序
要让您的应用程序与 OpenShift Container Platform 中运行的 PostgreSQL 数据库服务通信,必须编辑 config/database.yml
中的 default
部分,以便在创建数据库服务时使用环境变量,稍后会对这些变量进行定义。
流程
使用预定义的变量按照以下方式编辑
config/database.yml
中的default
部分:config/database
YAML 文件示例<% user = ENV.key?("POSTGRESQL_ADMIN_PASSWORD") ? "root" : ENV["POSTGRESQL_USER"] %> <% password = ENV.key?("POSTGRESQL_ADMIN_PASSWORD") ? ENV["POSTGRESQL_ADMIN_PASSWORD"] : ENV["POSTGRESQL_PASSWORD"] %> <% db_service = ENV.fetch("DATABASE_SERVICE_NAME","").upcase %> default: &default adapter: postgresql encoding: unicode # For details on connection pooling, see rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: <%= ENV["POSTGRESQL_MAX_CONNECTIONS"] || 5 %> username: <%= user %> password: <%= password %> host: <%= ENV["#{db_service}_SERVICE_HOST"] %> port: <%= ENV["#{db_service}_SERVICE_PORT"] %> database: <%= ENV["POSTGRESQL_DATABASE"] %>
11.3.3. 将应用程序存储在 Git 中
在 OpenShift Container Platform 中构建应用程序通常需要将源代码存储在 git 存储库中,因此如果还没有 git
,必须要安装。
先决条件
- 安装 git。
流程
运行
ls -1
命令,确保已在 Rails 应用程序目录中。命令输出应类似于:$ ls -1
输出示例
app bin config config.ru db Gemfile Gemfile.lock lib log public Rakefile README.rdoc test tmp vendor
在 Rails 应用程序目录中运行以下命令,以便初始化代码并将其提交给 git:
$ git init
$ git add .
$ git commit -m "initial commit"
提交应用程序后,必须将其推送(push)到远程存储库。Github 帐户,您可使用它创建新的存储库。
设置指向
git
存储库的远程存储库:$ git remote add origin git@github.com:<namespace/repository-name>.git
将应用程序推送(push)到远程 git 存储库。
$ git push