RubyやRailsについての学習を書籍で行う場合は、「現場で使える Ruby on Rails 5速習実践ガイド」が非常におすすめです。
この記事では、「現場で使える Ruby on Rails 5速習実践ガイド」の「Chapter1~4」について徹底的に解説していきます。
「本だけではよくわからない」
「具体的にどう学習を進めればいいかわからない」
Chapter1~4についてこのようなお悩みをお持ちの方は、是非参考にしてください。
なお今回の記事では、本書「現場で使える Ruby on Rails 5速習実践ガイド」のことを「現場Rails」と記載します。
「現場で使える Ruby on Rails 5速習実践ガイド」とは?
大場寧子 / 松本拓也 / 櫻井達生 / 小田井優 / 大塚隆弘 / 依光奏江 / 銭神裕宜 / 小芝美由紀
「現場で使える Ruby on Rails 5速習実践ガイド」(以下、現場Rails)は、Railsアプリの基本から実践的なノウハウまでをしっかり学べる書籍となっており、Amazonでも非常に高い評価を受けています。
この一冊で、Webアプリケーション開発のための学習は一通りできてしまうでしょう。
なおこの書籍は、オブジェクト指向についての知識や経験があり、Ruby以外の言語でのWebアプリケーション開発もやったことがあるものの、RubyやRailsを学習するのは初めて、という方が対象となっています。
(基礎的なRubyの解説はあるものの、やや内容としては薄いです)
この本を読むにはまだ早いという自覚のある方は、まず以下の書籍での学習を終えるようにしてください。
環境構築/現場Rails「Chapter1」の注意点
まずは、現場Railsに沿って開発を進めていくための環境構築について解説していきます。
初級者がつまづきやすいところなので、是非参考にしてください。
なお、弊社は「RUNTEQ」というWebエンジニア育成に特化したプログラミングスクールを運営しております。
それにちなんで、フォルダ名は「runteq」とさせていただきます。
作業ディレクトリ(フォルダ)の作成
まずは、課題を進めるために作業用のディレクトリを作成します。
ここでは、ホームディレクトリ直下にworkspaceというフォルダを作り、その下にrunteqというフォルダを作ります。
その後ターミナルを開いて、mkdir -p ~/workspace/runteqコマンドを実行してください。
そのままls ~/workspaceコマンドを実行すると、runteqフォルダが確認できるはずです。
cd workspace/runteqコマンドで、作成した作業フォルダに移動してみましょう。
なお、存在するフォルダはタブによって入力補完ができるので、cd w[タブ入力]/r[タブ入力]でコマンドが完成します。
入力補完ができなかった場合は、対象のディレクトリが存在しないということなので、コマンドや作成したディレクトリの名前にタイプミスがないか、今いるディレクトリが合っているかを確認してください。
~/Desktop/以下に作業フォルダを作った場合は、デスクトップに表示されます。
しかしデスクトップに作業フォルダがあると、余計なファイルを移動してしまったり、間違って消してしまうなどの可能性があるため、デスクトップからアクセスできない階層のフォルダを作業フォルダとして使うことをおすすめします。
次に、以下のコマンドで現場Rails用の作業フォルダを作りましょう。
mkdir -p ~/workspace/runteq/genba_rails
cd ~/workspace/runteq/genba_rails
irbを使ってRubyプログラムを実行
作業フォルダに移動が完了したら、現場Railsの書籍のChapter1を読み進めてください。
Chapter1では、irbを使ってRubyプログラムの実行結果を確認していきます。
作業フォルダへ移動後にirbコマンドを実行し、書籍のRubyプログラムを実行していきましょう。
irbを終了する際は、exitコマンドを入力してください。
書籍「1-2-2 Userクラスを作る」からは、適宜VSCodeなどの好きなエディタを開いて、Rubyファイルを作成して保存してください。
保存後、対象のRubyファイルが存在するディレクトリで「ゼロからわかるRuby超入門」で行った時と同様にRubyプログラムを動かしてみましょう。
「1-4 少し高度なテクニック」の内容は完全に理解できなくても大丈夫なので、どんな内容が書いてあるかをざっと把握して、後から辞書のように読み直せるようにしておきましょう。
現場Rails「Chapter2」の注意点
以下に、現場RailsのChapter2における注意点について解説していきます。
rbenvのインストール
ここからは、初学者にとって大変な箇所になってきます。
書籍や以下の解説を読んでも環境構築が難しい場合は、自分で何とかしようとするより、Qiitaのような技術系サイトで質問したり、周囲に詳しい人がいれば質問したりする方が早いでしょう。
RUNTEQの場合は、技術サポーターが随時更新している資料や、その他問題を解決するためのサービスを用意しているため、予期しないトラブルが発生したとしても安心です。
本題に戻ります。
rbenvのインストールでは、実行中のターミナルがbashかzshかでコマンドを変える必要があります。
Using Package Managersに記載されている手順と、以下のコマンドを実行してください。
brew install rbenv
which ruby # (省略)/.rbenv/shims/ruby の表示を確認する
brew upgrade rbenv ruby-build
rbenv init
rbenv install 2.5.1
Apple M1チップ版のMacをお使いの方でrbenv install 2.5.1がうまくいかない時は、下記のコマンドを試してみてください。
OPENSSL_CFLAGS=-Wno-error=implicit-function-declaration RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.5.1
Shellの設定ファイルの変更が必要になった場合は、以下の内容を確認してください。
~/.bash_profileや~/.zshrcの設定ファイルは、ターミナル起動時のShellにログインするタイミングでしか読み込まれません。
echoでの設定ファイルへの追記を行った後は、書籍の指示通りにターミナルを終了して立ち上げるか、source ~/.bash_profileで読み込むようにしてください。
なお、ターミナルのウィンドウ上部に利用中のbashかzshの表示が確認できます。
Windows用の必要ない手順は飛ばす
macOSを使用している場合は、「Chapter 2-1 コマンド実行環境を準備しよう」を実施する必要はないので、「Chapter 2-2 rbenvをインストールしよう」から実施してください。
rbenvでRuby 2.5.1 を取得後に、どちらかのコマンドで切り替えを行ってください。
# 1. システム全体に適用
rbenv global 2.5.1
# 2. 現在の作業ディレクトリ以下に適用
cd ~/workspace/runteq/genba_rails
rbenv local 2.5.1
その後、rbenv versionsとruby -vで実行した結果に2.5.1が含まれているかどうかを確認してください。
Railsのgemは 5.2.6 をインストールする
書籍の指示とは異なりますが、gem install rails -v 5.2.6とバージョンを指定してインストールしてください。
バージョンの指定が無い場合は最新版を取得してしまいますが、書籍通りに動かない可能性もあるので5.2.6にしましょう。
なお、gem install rails -v 5.2.6実行時にM1Macで以下のようなメッセージが出てうまくインストール出来ないケースがあります。
その際はgem install nokogiri -v 1.12.5を行なってからgem install rails -v 5.2.6を実行すると成功します。
Fetching: nokogiri-1.13.3.gem (100%)
ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)
bad response Forbidden 403 (https://rubygems.org/quick/Marshal.4.8/nokogiri-1.13.3-x64-unknown.gemspec.rz)
データベースはPostgreSQLではなく、SQLite3を使う
書籍ではPostgreSQLを利用しますが、環境構築時のエラーを解消する必要が出てきます。
従って、環境構築の難易度が低い「SQLite3」のデータベースを使用します。
SQLite3はRailsにデフォルトで備わっているので、SQLite3を個別にインストールする必要はありません。
そのため「Chapter 2-5 データベースのインストールとセットアップ」で実行している各種作業はすべて飛ばしても問題ありません。
brew install postgresqlも実行しなくて大丈夫です。
Railsアプリケーションは`5.2.6`のバージョンで作成する
「Chapter 2-6 Railsに触れてみよう」では、書籍のコマンドと異なりますが、rails _5.2.6_ new scaffold_appを実行してください。
PostgreSQLは使用しないので、「-d postgresql」オプションもつけなくて大丈夫です。
rails newコマンドを、バージョンを指定せずに実行すると、最新バージョンであるRails6系で作成が行われます。
Rails6では、Rails5系までのRailsの環境構築に加えて、JavaScript用にWebpackerのビルド環境を用意する手順が必要になります。
環境構築の難易度が低いRails5系で作成することで、まずはRailsのみの学習に集中しましょう。
また書籍では、「bin/rails」コマンドと記載していますが、「bundle exec rails」で実行しても挙動は同じなので好きな形で実行してください。
「rails generate …..」でファイルを生成した後はcode scaffold_appを実行してVSCodeでソースコードを編集できるようにしましょう。
ターミナルでcodeコマンドが認識されなかった方は、VSCodeを開いて「Cmd + Shift + p」の後にShellと入力して、Enterキーを押して認識させてください。
この内容は、open scaffold_appでFinderで作成されたRailsアプリケーションのディレクトリを開いて、VSCodeにドラッグアンドドロップすることでも対応可能です。
なおドラッグアンドドロップは、Macのトラックパッドやマウスでの操作になります。
分からない単語がある場合は都度調べて進みましょう。
現場Rails「Chapter3」の注意点
ここからは、現場RailsのChapter3における注意点について解説していきます。
Chapter2と同様にRailsアプリケーションは`5.2.6`のバージョンで作成する
Chapter2と同様に、書籍と異なるコマンドを実行してRailsアプリケーションを作成しましょう。
PostgreSQLは使用しないので「-d postgresql」オプションもつけなくて大丈夫です。
cd ~/workspace/runteq/genba_rails
rails _5.2.6_ new taskleaf
rails newコマンドは、実行したディレクトリの直下にRailsアプリケーションを生成するので、scaffold_appディレクトリで実行しないように注意してください。
slim-railsは`3.1.3`のバージョンを使いましょう
書籍ではバージョン指定なしでGemfileに記載していますが、これでは3.6系のslim-railsがインストールされてしまいます。(2022/2現在)
3.6系では予期せぬエラーが出てしまうため、3.1.3バージョンを使うようにバージョン指定をしてください。
# NGパターン
gem ‘slim-rails’
gem ‘html2slim’
# OKパターン
gem ‘slim-rails’, ‘3.1.3’
gem ‘html2slim’
bootstrapは`4.6.X`のバージョンを使う
書籍ではバージョン指定なしでGemfileに記載していますが、これでは5系のbootstrapがインストールされてしまいます。(2021/7現在)
5系では書籍の記載と異なるスタイルが適用されてしまうので、4系を使うようバージョン指定をしてください。
# NGパターン
gem ‘bootstrap’
# OKパターン
gem ‘bootstrap’, ‘~> 4.6’
wgetコマンドをインストールしましょう
書籍91ページ目でwgetを使ったコマンドがありますが、mac標準ではwgetコマンドを使えない場合があります。
以下のコマンドでwgetをインストールすれば、wgetコマンドを使えるようになります。
brew install wget
現場Rails「Chapter4」の注意点
Chapter4では、Chapter3で作成したアプリケーションを追加改修します。
そのため、rails newコマンドを実行する必要はありません。
以上の内容を元に、Chapter1~4までの内容は実際にコードを書いて学習してください。
まとめ
以上、現場RailsのChapter1~4について徹底解説しました。
現場Railsを終えても、まだRailsの理解について不安がある場合は、より簡易的にWebアプリケーションが作成できるgemのSinatraを使ってみましょう。
また、冒頭の繰り返しになりますが、現場Railsは辞書のように分からない単語を調べる際にも使えるので、学習の際は常に手元に置いておくようにしましょう!