Ruby on Rails 入門
- はじめに
- 参考情報
- バージョンの確認方法
- Windows Subsystem for LinuxでLinux環境を整えた場合
- 作業ディレクトリの準備
- 簡易ブログの作成
- Hello Rails
- Ruby on Railsのシンプルな構造の練習
- URLと呼び出されるコントローラーおよびアクションのまとめ
- おわりに
- 戻る
はじめに_
Ruby on Railsを味見してみる。
Railsのインストール方法は以下のとおり。
- Windows 10/11
- macOS Monterey
参考情報_
Ruby on Railsは使用するバージョンにより使用できるメソッドが大きく異なる。必ず自分が使用するバージョンの情報を参照すること。
- Ruby on Rails Guide:公式情報。英語。
- Ruby on Rails ガイド:有志による上記の日本語訳。ただし、最新バージョンに対応していないことがある。
- Ruby on Rails API:公式情報。英語。Ruby on Railsで使用できるクラスやメソッドを調べることができる。
バージョンの確認方法_
2022年10月20日現在、以下のバージョンで動作を確認している。
% ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21] % gem --version 3.3.22 % sqlite3 --version 3.37.0 2021-12-09 01:34:53 9ff244ce0739f8ee52a3e9671adb4ee54c83c640b02e3f9d185fd2f9a179aapl % rails --version mkdir: /usr/local/bin/../version_cache: Permission denied /usr/local/bin/rbenv-communal-gem-home: line 21: /usr/local/bin/../version_cache/3.1.2: No such file or directory Rails 7.0.4
Windows Subsystem for LinuxでLinux環境を整えた場合_
VcxSrv(XLaunch)の起動_
gnome-terminalを利用するので、まず、VcxSrv(XLaunch)を起動する。VcxSrvのインストールで設定したVcxSrvのアイコンをクリックし、VcxSrvを起動する。
gnome-terminalの起動_
gnome-terminalの利用で設定したgnome-terminalを起動する。
Ubuntuターミナルを起動し、ターミナル上で以下を起動する。
% gterm &
作業ディレクトリの準備_
% cd % mkdir -p IntroRoR % cd IntroRoR
簡易ブログの作成_
Ruby on Railsガイド:Rails をはじめように従って簡易ブログを作成してみる。
% rails new blog % cd blog
Ruby on Railsの動作確認を行う。以下のコマンドで開発用Webサーバを起動する。
% rails server % bin/rails server => Booting Puma => Rails 7.0.4 application starting in development => Run `bin/rails server --help` for more startup options Puma starting in single mode... * Puma version: 5.6.5 (ruby 3.1.2-p20) ("Birdie's Version") * Min threads: 5 * Max threads: 5 * Environment: development * PID: 95272 * Listening on http://127.0.0.1:3000 * Listening on http://[::1]:3000 Use Ctrl-C to stop
Webブラウザで、http://localhost:3000/ にアクセスし、Ruby on Railsのメッセージが出ていたらインストール&設定成功している。なお、以下の画像のRubyやRailsのバージョンは上記のバージョンと異なるが気にしなくてよい。

開発用Webサーバを停止させる。Ctrlキーを押しながら「C」のキーを押す(以下、この操作をCtrl-cと表記する)。
Ruby on Railsの開発環境には http://localhost:3000/で経由でアクセスできる。
Hello Rails_
http://localhost:3000/articles にアクセスした際に「Hello Rails!」を表示するようにしてみる。ルーティング(あるURLにアクセスしたとき、どのコントローラーのどのアクションを利用するかを定める設定)を設定する。今回は ArticleControllerに記載されているindexアクションについて設定する。 config/routes.rb をお好きなエディタ(Ubuntu 20.04だとgeditやVScodeなど、macOSだとテキストエディタなど)で開き、以下のように編集する。
Rails.application.routes.draw do get "/articles", to: "articles#index" end
続いてArticlesControllerとその関連ファイルを自動生成する。既にルーティングは設定しているのでルーティング設定はしないようにする。
まず、現在のディレクトリがblohディレクトリであること確認する。
% pwd /Users/gotoh/Sandbox/IntroRoR/blog
ArticlesControllerとその関連ファイルを自動生成する。
% bin/rails generate controller Articles index --skip-routes create app/controllers/articles_controller.rb invoke erb create app/views/articles create app/views/articles/index.html.erb invoke test_unit create test/controllers/articles_controller_test.rb invoke helper create app/helpers/articles_helper.rb invoke test_unit
エディタ(Ubuntu 20.04だとgeditやVScodeなど、macOSだとテキストエディタなど)にて app/views/articles/index.html.erb を開く。
編集内容は以下の通り。
<h1>Hello Rails!</h1> <p>My name is 「自分の名前」</p>
以下のコマンド実行し、Webブラウザでhttp://localhost:3000/articles にアクセスし、Hello Rails!が表示されていることを確認する。
% bin/rails server
確認できたら、開発用WebサーバをCtrl-cで停止する。
続いて、アプリケーションのトップページ(http://localhost:3000/にアクセスしたときに表示されるページ)を設定する。
エディタでconfig/routes.rbを以下のように変更して、保存する。
Rails.application.routes.draw do get "/articles", to: "articles#index" root "articles#index" end
以下を実行し、http://localhost:3000/ にアクセスすると、http://localhost:3000/aritcles と同じページが表示されることを確認する。
% bin/rails server
確認できたら、開発用WebサーバをCtrl-cで停止する。
Ruby on Railsのシンプルな構造の練習_
Rails をはじめよう: 6 MVCを理解する以降の内容を順番に実行していくとRailsの基本的な使い方を学ぶことができる。この後は、リンク先の6章以降を練習していく。
その際の注意点として、リンク先はある程度Linuxコマンドを知っている人向け記載されているため、本講義の補助ページよりも説明が不親切になっている。以下に注意しながら自習してほしい。
- bin/rails 〜 というコマンドは今回のチュートリアルだと blog ディレクトリ直下で実行されることを前提としている。bin/rails 〜とコマンドを実行し「zsh: no such file or directory: bin/rails」というエラーがでたときは、blog直下のディレクトリに移動すること。
% pwd (このコマンドで現在のディレクトリを確認する) % cd ~/IntroRoR/blog (このページに従って作業している場合はこのコマンドでblog直下に移動できる) % pwd
- 「〜のファイルを作成する」という記述がでた場合はtouchコマンドで空ファイルを作成すること。たとえば、「app/views/articles/show.html.erbを作成し、」という記述がある場合は以下のように空のファイルを作成する。
% cd ~/IntroRoR/blog % touch app/views/articles/show.html.erb
- bin/rails console で起動したインタラクティブモードから抜け出す場合は quit を入力する
- 変更結果の確認するタイミングが明確に記載されていないので、章、節、項などの終わりに適宜サーバを起動し、Webブラウザで変更結果がどう反映されているのかを確認する。
% cd ~/IntroRoR/blog % bin/rails server (サーバの起動) ターミナル上でCtrl-c (サーバの終了)
- 9.3 concernを使うで既存のテーブルに新たにフィールド(列)を追加している。このため、この節の前までにデータを入力している場合にはWebブラウザから確認するときエラーが発生する(新たに追加したフィールド status に値が入っていないため)。この時にはデータベースをリセットして作り直す。
% bin/rails db:migrate:reset
URLと呼び出されるコントローラーおよびアクションのまとめ_
上記の7つのメソッド new, create, show, index, edit, update, destroy があるデータをコントローラを通して作成(Create)、読み込み(Read)、更新(Update)、削除(Delete)するときに使う基本メソッドである。Ruby on RailsではURL+HTTPメソッドと上の7つの基本メソッドが自動的に結びついている。
また、newメソッドに対応する new.html.erb、showメソッドに対応する show.html.erb、indexメソッドに対応するindex.html.erb、editメソッドに対応する edit.html.erbがそれぞれのメソッド終了後に自動的に呼び出される。
コントローラがモデルで定義されている処理によってデータベースからデータを引き出し、ビューに引き渡す処理をしたうえでビューに引き渡すというのがRuby on RailsのModel-View-Controller(MVC)モデルである。
ArticlesControllerを経由してArticleModel(データベースのarticlesテーブル)を操作する際のURLとコントローラの対応は以下のとおりである。
URL | 対応するコントローラのアクション | 対応するviewsのファイル | 操作の意味 |
http://localhost:3000/articles | index | index.html.erb | articleの一覧表示 |
http://localhost:3000/article/:id (GET) | show | show.html.erb | articleの表示 |
http://localhost:3000/article/new | new, create | new.html.erb | 新規作成 |
http://localhost:3000/article/edit/:id | edit, update | edit.html.erb | 更新 |
http://localhost:3000/article/:id (DELETE) | destroy | -- | 削除 |
開発用Webサーバを起動し、http://localhost:3000/articles をWebブラウザで開き、URLと開発用Webサーバのログを見比べながら、上の表の対応関係を確かめてほしい。
% rails server
おわりに_
関係データベースシステムの重要な応用例がWebアプリケーションである。Ruby on Railsは関係データベースを利用する際にSQLをソースコード内に記述しなくても、Rubyプログラム上から簡単にアクセスできる仕組みオブジェクト-リレーショナルマッピング(ORマッピング)を採用している。
参考
しかし、良いWebアプリケーションを作成するためには良いデータベースの設計が必要であるし、ORマッピングを用いるとしてもSQLを理解した上で、効率の良いソースコードを書かなくてはならない。
この講義を通して学んだ内容は、このようなWebアプリケーション開発などの応用事例の基礎となる事柄である。