初 Rails です。
忘れないうちに手順をメモします。
環境
- macOS High Sierra
- Ruby 2.4.1
- Ruby on Rails 5.1.4
Ruby on Rails のインストール(初回のみ)
Rails のインストール
バージョンを省略すれば最新版が適用される。
$ gem install rails --version=5.1.4
railsのバージョンを確認
$ rails -v
アプリの作成
任意のフォルダにプロジェクトを作成
バージョンを省略すれば最新版が適用される。
$ rails _5.1.4_ new myapp
プロジェクトフォルダに移動
$ cd myapp
アプリを作成
モデル名(今回はListの部分)は、単数形で頭文字は大文字にする。
$ rails generate scaffold List name:string age:integer
データベースの設定をデータベース(SQLite3)に反映
$ rails db:migrate
Rails内臓のWebサーバを起動
webサーバの停止は Ctrl + C キー。
$ rails server
※おまけ
Cloud 9 上で開発している場合は、以下のコマンドでWebサーバを起動する
$ rails s -b $IP -p $PORT
ブラウザでアプリが動作することを確認
URLの後ろの部分は、モデル名(今回はList)を複数形で頭文字が小文字にしたもの(=データベースのテーブル名)になる(今回の場合は"/lists")。
http://localhost:3000/lists
デプロイの準備
ローカル環境ではデータベースに SQLite3 を使用したが、heroku では SQLite3 は使用できない。
heroku 標準のデータベースである PostgreSQL で動作するように変更を加える。
./Gemfile を修正
修正前:
gem 'sqlite3'
修正後:
ローカル環境(development)では SQLite3 を、heroku環境(production)では PostgreSQL を使用することを明示する
gem 'sqlite3', group: :development
gem 'pg', group: :production
Gemfileの変更内容に基づき必要なモジュールを追加インストールする
$ bundle install
初回時、ここでエラーが出て gem ‘pg’ のインストールができなかった。
事前にローカル環境に PostgreSQL をインストールしておくと回避できる模様。$ brew install postgresql $ psql --version $ bundle install
Config/database.yml を変更
heroku 環境(production)でのデータベース設定。タブは半角スペース2つ分。
#修正前(以下、削除)
production:
<<: *default
database: db/production.sqlite3
#修正後(以下、追記)
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
heroku へのデプロイ
heroku へログイン
$ heroku login
heroku 上にアプリを作成
$ heroku create
heroku にアプリをデプロイ
$ git add .
$ git commit -m 'first commit'
$ git push heroku master
heroku 上でデータベースの設定を PostgreSQL に反映
$ heroku run rake db:migrate
アプリを起動
$ heroku open
ブラウザでアプリにアクセス(URLは各アプリごとに異なります)
https://xxxxx-xxxxx-12345.herokuapp.com/lists