はじめに
これは、普段Web系やAndroidなどフロントエンド中心に開発を行っており、びっくりするほどバックエンドのことが分からなかった筆者が、バックエンドの知識を付ける目的で、Railsで◯×ゲーム(三目並べ)を作成した時の記録である。
いくつかの段階に分けて取り組んだので、記事も分けることにする。
①アクセス(通信)する
今回はWebサーバにアクセスして画面を表示させられるようにするところまで行う。
実現したいこと
Webサーバにアクセスして、ブラウザに画面を表示させる。
ここではとりあえず、Hello, Worldなどの何かしら簡単なオブジェクトが表示されているようにする。
実現するうえでの不明点
- Webサーバへのアクセスの仕方が分からない(忘れた)
→手順としてはrails serverでサーバを立ち上げてからブラウザでアクセスするだけ
Railsチュートリアルの1.3に全部書いてある。
開発手順
ほぼ全てRailsチュートリアルの1.3に則って進めた。
Railsサーバの起動
Railsアプリケーションのディレクトリでrails serverする(rails sというエイリアスあり)。
自分は別マシンにssh接続して開発しているため、-bオプションでホストを指定している。
$ rails s -b <ssh先のホスト>
rails serverコマンドを打つと、PumaというWebサーバが起動する( https://railsguides.jp/command_line.html#rails-server )。
$ rails s
=> Booting Puma
=> Rails 5.0.7.2 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.2-p47), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
画面の表示
上記でサーバを起動したので、ブラウザからアクセスする。
デフォルトはlocalhost:3000で、指定したホスト(-bオプションで指定できる)やポート番号(-pオプション)に適宜書き換える。
アクセスするとデフォルトのRailsページが表示される。Hello, Worldより遥かに豪華
画面に別の物を表示させる
上記で接続した画面に"Hello, World!"を表示して原始的にすることにする。
アクション追加
コントローラに「文字列を描画する」というアクションを追加する。
app/controllers/application_controller.rbにhelloアクションを追加した。
def hello
render html: "Hello, World!"
end
アクションを使う
上記で作成したhelloアクションを使うようにして、実際に画面に表示されるようにする。
config/routes.rbにroot 'application#hello'('<コントローラ名>#<アクション名>')を追加する。
これで晴れて"Hello, World!"が画面に表示されるようになった。

エラーや詰まった箇所
Gem::LoadError
rails serverを起動してブラウザでアクセスすると、Gem::LoadErrorというエラーが発生した。
sqlite3というgemの最新バージョン(1.4.x)がActiveRecordに対応していないことによるエラーらしい。
sqlite3のバージョンを指定してインストールしなおすことで解消した。
参考: sqlite3のgemでGem::LoadErrorが出てしまう
ActiveRecord::ConnectionNotEstablished
上記のgemのエラーを解消したらこのエラーが発生した。
アプリがActiveRecordを使わない設定で作られていたのが原因らしい。
config/application.rbにrequire 'active_record/railtie'を追加すると解消した。
参考: Railsで ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found. がでたら確認すること。
補足
Railsアプリケーションの作成
rails newする。自動的にbundle installもされる。
Gitの導入
git initする。
git addとgit commitをするとローカルにmasterブランチができるので、あとはいつもGitを使っている感じでブランチを切ったりできる。
まとめ
- Webサーバにアクセスして、自分で指定した文字列を画面に表示させた。
- Railsが頑張っているおかげでWebサーバを容易に利用できる。