この記事について…
普段はRuby on Railsと無縁なプログラマなんですが、今更ながら面白そうという単純な理由からRuby on Rails Tutorialをやってみようと思い立ちました。今回は前回の記事の続きで第2章をやっていきます。
尚、Rails 5.1に対応した第4版を用いて、かつVagrantを使用した環境で進めていきます。
第2章 Toyアプリケーション
第2章はToyアプリケーションと呼ばれるものを作成していくとのことです。第1章で学んだ知識のおさらいをしつつ、チュートリアルに沿って進めていきましょう。
第1章でBitbucketにgit push
する際にエラーが発生していましたが、新規リポジトリの作成時「Include a README?」項目をNoにしなかった為に発生したと改めて理解しました。READMEは基本的にはInitialize repository
の際に追加しようと心に誓いました。
話は逸れましたが、第2章からはデータベースと連携したRailsアプリケーションの作成が始まります。
Railsでは変数命名の際に単数形と複数形を使い分ける必要があると噂に聞いていたのですが、チュートリアルの例を見ると確かにモデル名は単数形のような気がするし、テーブル名は複数形のような気がします。
「この単語の複数形ってなんだったっけ…?」と開発中に悩むのは嫌だなぁと思っていたら、Railsではactive_support
という便利なものを使えるみたいです。
# irbコマンドを実行してRubyの式を標準入力から実行できるようにする
$ irb
# 外部ライブラリを読み込む
irb> require 'active_support/inflector'
=> true
# 単数形を複数形に変換
irb> 'user'.pluralize
=> "users"
# 複数形を単数形に変換
irb> 'users'.singularize
=> "user"
しばらくお世話になりそうな手法です。
さて、第2章のRailsコーディング自体はチュートリアルにわかりやすく手順が記載されているのであまり詰まることもありませんでした。Active Recordが提供する強力な基本クラスのお陰で、データベースへのアクセスが簡単にできる印象を受けますね。
第2章はすんなり終わったなぁ…と余裕ぶっこいていたら、アプリケーションをデプロイするところで嵌りました。
$ heroku run rails db:migrate
! Missing required flag:
! -a, --app APP app to run command against
! See more help with --help
なんかアプリを指定しろと怒られているけど、アプリを指定とは何ぞや…?って一瞬固まりましたが、ヘルプを眺めてたらheroku apps
ってアプリを一覧表示してくれそうなコマンドがあったので事なきを得ました。第1章で既にHerokuにデプロイ済みだった為に、アプリが複数あるから指定してくれっていうことだったんですね。それとは別件でHerokuへのログインも忘れていた…。
ということで、備忘録としてHerokuの簡単な操作を書いておきます。
# ログイン
$ heroku login
# ログアウト
$ heroku logout
# アプリ一覧表示
$ heroku apps
$ heroku list # これでもいいみたいです。
# ステータス確認
$ heroku ps -a APP_NAME
# コマンド実行
$ heroku run -a APP_NAME COMMAND
$ heroku run -a APP_NAME bash # bashを起動すると楽な時もあります。
# ログ取得
$ heroku logs
その後、Herokuへのデプロイも無事成功して第2章を終えることができました。
Scaffoldの手軽さがわかった一方で、チュートリアルにもある通り何でもかんでも自動で出来て深いところまで理解できなかった感もあります。この点を、次章以降で解消していければいいですね。
それでは、次回 第3章から再開したいと思います。