Help us understand the problem. What is going on with this article?

Rails+Herokuで5分でWebアプリ作るおっ( ^ω^)

More than 5 years have passed since last update.

Ruby on RailsとはRubyのWebアプリケーションフレームワーク。
Web界ではもっとも有名なフレームワークと言っても過言ではないのではないでしょうか。

HerokuはPaaSの一つで、当初はRailsのために作られたものなのでRailsとの相性は抜群です。

今日はこれを使って5分で、Memberを登録しておくだけの簡単なWebアプリを作りますよ。環境はMacです。

個々の詳細については特に説明しておりません。最短の手順を記述するのみです。

インストールしてあるもの

  • gitをインストール済み
  • rubyをインストール済み
  • Postgresインストール済み
  • gem install rails済み
  • heroku toolbeltインストール済み

タイムアタック前の確認事項

heroku login

すぐログイン切れちゃうのでheroku appsなんかを打って確認しておくしておく。
パスワード入力と2way authentication codeが必要。

PostgreSQL

別タブでpostgresを起動しておく。
Macでやっているのでdaemon化はしていないのです。

$ postgres -D /usr/local/var/postgres

準備ができたらタイムアタック開始!

Railsアプリを作る

Memberを登録するだけのアプリを作ります。

$ rails new memberlist -d postgresql

時間がかかります。

$ cd memberlist
$ rails s 

http://localhost:3000/ をブラウザで叩いて表示されることを確認。まだDBの設定をしていないのでエラーになります。

次にScaffoldで/membersページをつくり、MigrationでDBを作ります。

$ createdb memberlist_development
$ rails g scaffold Member name:string comment:text
$ rake db:migrate
$ rails s

再びブラウザから確認。これでアプリが完成しました。

Gitリポジトリ作る

$ git init
$ git add .
$ git commit -m'initial commit'

Herokuへデプロイ

GemfileとProcfileというファイルが必要です。

Gemfileは既にできています。
Heroku対応させるために以下を末尾に追加。

Gemfile
gem 'rails_12factor', group: :production

反映。

$ bundle install

Procfileを作ります。

$ vim Procfile
# 中身は以下のようにする。
web: bundle exec rails server -p $PORT

ここいらでcommitしましょう。

$ git commit -a -m'Create procfile'
$ heroku create

Heroku上で設定がされ、またリポジトリにherokuというリモートリポジトリが作成されます。

$ git remote -v
heroku  https://git.heroku.com/nantoka-kantoka-4491.git (fetch)
heroku  https://git.heroku.com/nantoka-kantoka-4491.git (push)

デプロイ。

$ git push heroku master

少し時間かかる。
これでブラウザで動作ができるはず

Heroku上のDB設定

HerokuでのPostgreSQLの設定。アドオンを追加して、migrationします。

$ heroku addons:add heroku-postgresql
$ heroku run rake db:migrate

これで出力されたURLで見られる。

アプリについての情報は以下で見られる。

$ heroku apps:info

参考資料

ドットインストールをかなり参考にさせていただきました。

ikuwow
いろんなことをしているWebエンジニアです
https://ikuwow.github.io
bm-sms
高齢社会に適した情報インフラを構築することで価値を創造し社会に貢献し続ける
https://www.bm-sms.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away