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
이미 애플리케이션이 있으면
pg
(postgresql) gem이Gemfile
에 있는지 확인합니다. 없는 경우 gem을 추가하여Gemfile
을 편집합니다.gem 'pg'
종속성이 모두 포함된 새
Gemfile.lock
을 생성합니다.$ bundle install
pg
gem과 함께postgresql
데이터베이스를 사용하는 것 외에도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
페이지를 제공하지 않으므로 새 루트 페이지를 생성해야 합니다.
사용자 정의 시작 페이지를 생성하려면 다음 단계를 수행해야 합니다.
- 인덱스 작업을 사용하여 컨트롤러 생성
- 시작 컨트롤러 인덱스 작업에 대한 뷰 페이지 생성
- 생성된 컨트롤러 및 뷰를 통해 애플리케이션 루트 페이지를 제공할 경로 생성
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"
애플리케이션이 커밋된 후에는 원격 리포지터리로 푸시해야 합니다. GitHub 계정으로 새 리포지터리를 생성합니다.
git
리포지터리를 가리키는 remote를 설정합니다.$ git remote add origin git@github.com:<namespace/repository-name>.git
애플리케이션을 원격 git 리포지터리로 푸시합니다.
$ git push