0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsでゲームを作成してバックエンドを学ぶ① アクセス(通信)する

Posted at

はじめに

これは、普段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.rbhelloアクションを追加した。

  def hello
    render html: "Hello, World!"
  end

アクションを使う

上記で作成したhelloアクションを使うようにして、実際に画面に表示されるようにする。
config/routes.rbroot 'application#hello''<コントローラ名>#<アクション名>')を追加する。
これで晴れて"Hello, World!"が画面に表示されるようになった。
スクリーンショット 2019-07-24 10.17.33.png

エラーや詰まった箇所

Gem::LoadError

rails serverを起動してブラウザでアクセスすると、Gem::LoadErrorというエラーが発生した。
sqlite3というgemの最新バージョン(1.4.x)がActiveRecordに対応していないことによるエラーらしい。
sqlite3のバージョンを指定してインストールしなおすことで解消した。

参考: sqlite3のgemでGem::LoadErrorが出てしまう

ActiveRecord::ConnectionNotEstablished

上記のgemのエラーを解消したらこのエラーが発生した。
アプリがActiveRecordを使わない設定で作られていたのが原因らしい。
config/application.rbrequire 'active_record/railtie'を追加すると解消した。

参考: Railsで ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found. がでたら確認すること。

補足

Railsアプリケーションの作成

rails newする。自動的にbundle installもされる。

Gitの導入

git initする。
git addgit commitをするとローカルにmasterブランチができるので、あとはいつもGitを使っている感じでブランチを切ったりできる。

まとめ

  • Webサーバにアクセスして、自分で指定した文字列を画面に表示させた。
  • Railsが頑張っているおかげでWebサーバを容易に利用できる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?