9.3. アプリケーションの作成

Rails アプリケーションをゼロからビルドするには、Rails gem を先にインストールする必要があります。その後に、アプリケーションを作成することができます。

手順

  1. Rails gem をインストールします。

    $ gem install rails
    Successfully installed rails-4.3.0
    1 gem installed
  2. Rails gem のインストール後に、PostgreSQL をデータベースとして 指定して新規アプリケーションを作成します。

    $ rails new rails-app --database=postgresql
  3. 新規アプリケーションディレクトリーに切り替えます。

    $ cd rails-app
  4. アプリケーションがすでにある場合には pg (postgresql) gem が Gemfile に配置されていることを確認します。配置されていない場合には、gem を追加して Gemfile を編集します。

    gem 'pg'
  5. すべての依存関係を含む Gemfile.lock を新たに生成します。

    $ bundle install
  6. pg gem で postgresql データベースを使用するほか、config/database.ymlpostgresql アダプターを使用していることを確認する必要があります。

    config/database.yml ファイルの default セクションを以下のように更新するようにしてください。

    default: &default
      adapter: postgresql
      encoding: unicode
      pool: 5
      host: localhost
      username: rails
      password:
  7. アプリケーションの開発およびテスト用のデータベースを作成します。

    $ rake db:create

    これで PostgreSQL サーバーに development および test データベースが作成されます。

9.3.1. Welcome ページの作成

Rails 4 では静的な public/index.html ページが実稼働環境で提供されなくなったので、新たに root ページを作成する必要があります。

Welcome ページをカスタマイズするには、以下の手順を実行する必要があります。

  • index アクションで コントローラー を作成します。
  • welcome コントローラー index アクションの ビュー ページを作成します。
  • 作成した コントローラービュー と共にアプリケーションの root ページを提供する ルート を作成します。

Rails には、これらの必要な手順をすべて実行するジェネレーターがあります。

手順

  1. Rails ジェネレーターを実行します。

    $ rails generate controller welcome index

    すべての必要なファイルが作成されます。

  2. 以下のように config/routes.rb ファイルの 2 行目を編集します。

    root 'welcome#index'
  3. rails server を実行して、ページが利用できることを確認します。

    $ rails server

    ブラウザーで http://localhost:3000 に移動してページを表示してください。このページが表示されない場合は、サーバーに出力されるログを確認してデバッグを行ってください。

9.3.2. OpenShift Container Platform のアプリケーションの設定

アプリケーションが OpenShift Container Platform で実行中の PostgreSQL データベースサービスと通信できるようにするには、データベースサービスの作成時に定義する環境変数を使用できるように config/database.ymldefault セクションを編集する必要があります。

手順

  • 以下のように事前に定義した変数で、config/database.ymldefault セクションを編集します。

    <% 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"] %>

9.3.3. アプリケーションの Git への保存

通常 OpenShift Container Platform でアプリケーションをビルドする場合、ソースコードを git リポジトリーに保存する必要があるため、git がない場合にはインストールしてください。

前提条件

  • git をインストールします。

手順

  1. ls -1 コマンドを実行して、Rails アプリケーションのディレクトリーで操作を行っていることを確認します。コマンドの出力は以下のようになります。

    $ ls -1
    app
    bin
    config
    config.ru
    db
    Gemfile
    Gemfile.lock
    lib
    log
    public
    Rakefile
    README.rdoc
    test
    tmp
    vendor
  2. Rails app ディレクトリーで以下のコマンドを実行して、コードを初期化し、git にコミットします。
$ git init
$ git add .
$ git commit -m "initial commit"

+ アプリケーションがコミットされたら、これをリモートリポジトリーにプッシュする必要があります。新規リポジトリーを作成する GitHub アカウントです。

  1. お使いの git リポジトリーを参照するリモートを設定します。

    $ git remote add origin git@github.com:<namespace/repository-name>.git
  2. アプリケーションをリモートの git リポジトリーにプッシュします。

    $ git push