Ruby on Rails チュートリアルをやってみた【第2章】

Ruby on Rails チュートリアルをやってみた【第2章】
カテゴリ
技術
タグ
ruby
ruby on rails

第2章の実績

第2章 Toyアプリケーション を実施しました!
実施時間: 1.5時間

学べたこと

  • 簡単にRESTアプリケーションの作成方法
  • scaffoldの強力さ!
    • データモデル、関連性や制約の定義が簡単にできる。
      関連性:あるモデルに属する、複数のモデルをもつといったことを直感的に定義出来る。
      制約:必須入力や、文字数制限を簡単に記述出来る。
    • DBの生成もコマンド(rails db:migrate)を一つ流すだけで出来てしまう。

単純な例ではありましたが、非常に簡単にCRUD定義が出来るscaffoldはとても強力なツールだと感じました。これが標準でrailsに含まれているのは大変便利!

独自にやったこと

Heroku環境で、「rails db:migrate」を自動で流れるようにした

経緯

Herokuというクラウド環境(チュートリアル上では擬似的に本番環境として扱っている)にアプリケーションをデプロイしています。今回作成したアプリを動かすためには、DBを生成するための「rails db:migrate」というコマンドを実行する必要がありますが、それを一々叩くのは忘れがちですし、なにより面倒です。

そこで、Herokuにプレインストールされている”foreman”というツールの機能を用いて、自動でこのコマンドを実行させるようにしました。

手順

以下のProcfileというファイルをプッシュしましょう。やることはこれだけです!

格納先はルートディレクトリ(リポジトリの最上位)、

ファイル名はProcfile、

記述するコマンドの形式は、(プロトコル名称): (実行したいコマンド)です。

左側は任意の名前でいいそうです(ただし、”web”という名前だけは特別な意味を持つそうなのでそれ意外で)。私は上記の通り、releaseという名前にしました。

右側が実行したいコマンドで、今回の場合では「rails db:migrate」です。(※もしrailsのバージョン4以前の場合は、このコマンドを「bundle exec rake db:migrate」とする必要があります)

このファイルを置いておくだけで、Herokuにデプロイするだけで、同時にDBのmigrateも自動で行われます。

参考

環境

  • ruby: 2.3.3
  • ruby on rails: 5.1.4
  • OS: Windows 10 (64bit)
  • IDE: IntelliJ ULTIMATE 2018.1
  • リポジトリ: GitHub

https://github.com/nisioka/RubyOnRailsTutorial/tree/toy_app

リンク

【スポンサードリンク】


関連記事

  1. Ruby on Rails チュートリアルをやってみた【第14章】

    第14章の実績 第14章 ユーザーをフォローする を実施しました!実施時間: 5時間 学べたこと 多対多のリレーションシップ多対多の関係を持つモデルの場合でもRailsでは簡単にリレーションシップを表現することができます […]

  2. Ruby on Rails チュートリアルをやってみた【第13章】

    第13章の実績 第13章 ユーザーのマイクロポスト を実施しました!実施時間: 4.5時間 学べたこと モデルの関連付け「rails generate model Micropost content:text user: […]

  3. Ruby on Rails チュートリアルをやってみた【第12章】

    第12章の実績 第12章 パスワードの再設定 を実施しました!実施時間: 1.5時間 学べたこと 本章では特段新しいことはなかったです。 第11章 アカウントの有効化 と同じような内容で、復習に近いような内容でした。ただ […]

  4. Ruby on Rails チュートリアルをやってみた【第11章】

    第11章の実績 第11章 アカウントの有効化 を実施しました!実施時間: 1.5時間 学べたこと メール送信機能「rails generate mailer UserMailer account_activation p […]

  5. Ruby on Rails チュートリアルをやってみた【第10章】

    第10章の実績 第10章 ユーザーの更新・表示・削除 を実施しました!実施時間: 2時間 学べたこと before_action例えば本章では、「before_action :logged_in_user, only: […]

  6. Ruby on Rails チュートリアルをやってみた【第9章】

    第9章の実績 第9章 発展的なログイン機構 を実施しました!実施時間: 1.5時間 学べたこと cookies.permanent.signed[:user_id] = user.id上記コードは、「cookieに、永続 […]