はじめに
これは、普段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サーバを容易に利用できる。