一週間のカリキュラム 1週間で、Ruby 〜 Ruby on Railsまでを学ぶ
シリーズの3日目、Railsをインストールして可能な限りの基本を抑えていきます。
3日目の内容
- Ruby on Rails の基礎を抑える。
Railsのインストールと初めてのページ表示
今後、Railsについて学んでいく中で、いろいろなサイトを参考にすると思います。 しかし、一番基本として抑えておくべきは公式サイトです。
理由としてはRubyのバージョン、Railsのバージョンの違いなどによって、ブログや技術サイトの情報が若干古かったりする場合があるからです。
公式サイトと比較しながら、ブログなどの情報サイトを利用していきましょう。
インストール前の確認
公式のインストールガイドには(2022年2月現在で) Railsを動かす為に最低以下の4つが必要と書いてます。
Before you install Rails, you should check to make sure that your system has the proper prerequisites installed. These include:
1 Ruby
2 SQLite3 データベース
3 Node.js フロント開発用のJS
4 Yarn フロントのJSのライブラリを管理するパッケージ管理ツール
Rubyはすでにインストールされてると思いますが、SQLite3, Node.js , Yarn がインストールされてない場合はインストールしておきましょう。※必要なバージョンも確認してください。
※ ただ、一応今回のページを表示するだけなら、上記をインストールしなくても動くは動きます。
Railsをインストールして、Railsの新しいプロジェクトを作成する。
railsをインストールします。
$ gem install rails
インストールしたrailsのバージョンを確認します。
$ bin/rails --version
Rails 7.0.1
これで、どのプロジェクトディレクトリでもRails用のプロジェクトを作成できるようになりました。
続いてRailsのプロジェクトを作ります。
/blog というディレクトリにRailsプロジェクトを作成します。
$ bin/rails new blog
/blogディレクトリに移動して開発を開始します。
$ cd blog/
公式ページには、各、ディレクトリの説明がありますが、当面抑えるべきディレクトリはさほど多くありません。必要に応じて覚えていけば良いでしょう。
とりあえず現状の画面を確認します。
bin/ ディレクトリにはRailsで開発するのに便利な機能が詰まっています。 まずは、現状のプロジェクトを早速動かしてみましょう
コマンドで現在のプロジェクトを起動します。
$ bin/rails server
=> Booting Puma
=> Rails 7.0.1 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.6.1 (ruby 3.1.0-p0) ("Birdie's Version")
* Min threads: 5
* Max threads: 5
* Environment: development
* PID: 44182
* Listening on http://127.0.0.1:3000
* Listening on http://[::1]:3000
Use Ctrl-C to stop
そうするとウェブブラウザで開くURLが表示されます。 ここでは http://127.0.0.1:3000 にアクセスするとRailsの最初の画面が表示される事がわかります。
自分で作ったページを表示してみる。
コマンド一つでベースとなるコントローラーやページ表示用のテンプレートが作成できます。
さきほど立ち上げたブラウザで http://127.0.0.1:3000//home/index
と入れたら表示されるページを作成してみます。
ひとつのコマンドで複数のファイルが作成されます。
$ bin/rails generate controller Home index
create app/controllers/home_controller.rb ①
route get 'home/index' ②
invoke erb
create app/views/home
create app/views/home/index.html.erb ③
invoke test_unit
create test/controllers/home_controller_test.rb ④
invoke helper
create app/helpers/home_helper.rb ④
invoke test_unit
コマンド終了後 http://127.0.0.1:3000//home/index にアクセスしてみてください。
※補足 一度コマンドで作成したコントローラー & etcファイルは
$ bin/rails d controller Home
で削除する事も可能です。
それぞれのファイルの意味
今回作成されたファイルの中でも最低限抑えるのは下記の ①〜③ です。
- ①コントローラー create app/controllers/home_controller.rb
コントローラー app/controllers/home_controller.rb の中身は下記の通りです。
class HomeController < ApplicationController
def index
end
end
- ② ルート route get 'home/index'
※ 実際には./config/routes.rbに下記のように追加されてます。
Rails.application.routes.draw do
get 'home/index'
end
- ③ ビュー create app/views/home/index.html.erb
app/views/home/index.html.erb の中身は下記の通りです。
<h1>Home#index</h1>
<p>Find me in app/views/home/index.html.erb</p>
- ④ その他、テストとヘルパー create test/controllers/home_controller_test.rb create app/helpers/home_helper.rb
テストとヘルパーに関しては、一旦今はそういう物があるんだという程度で大丈夫です。
それぞれに少しの変更を加えてみよう。
コントローラーに変数を足して、それをビューで画面に反映してみましょう。
コントローラー app/controllers/home_controller.rb の中身は下記の通りです。
class HomeController < ApplicationController
def index
# これを追加
@title = "これはタイトルです。"
# 注意: title = "**" だとローカル変数なので、ビュー側では表示できません。
# インスタンス変数にするために @を付けましょう。
end
end
app/views/home/index.html.erb の中身は下記の通りです。
<h1>Home#index</h1>
<p><%= @title %></p>
<p>Find me in app/views/home/index.html.erb</p>
この2つを加える事で画面に変数を出力するという事ができました。