【Rails】Railsプロジェクトの新規作成【初学者】

はじめに

Ruby on Rails(または単にRails)は、Rubyというプログラミング言語で設計・開発されたWebアプリケーションフレームワークです。一般的に、Webアプリケーションをイチから作成するには膨大な量のコードを書く必要があります。Webアプリケーションフレームワークは、Webアプリケーション開発で必要になるであろう機能のほとんどを初めから用意しており、Webアプリケーションが簡単に開発できるようになっています。そして、Webアプリケーションフレームワークの中でも人気のあるのがRailsです。

本記事では、Railsアプリを作成する方法について説明します。

Railsのインストール

開発環境の準備

Railsを動作させるために必要なソフトウェアをいくつかインストールする必要があります。なお、Windowsの場合は以下のRuby Installer for Windowsをインストールすることで、Railsの開発環境をセットアップできます。

M1チップ搭載Macで開発環境を構築するには以下の記事を参照してください。

Ruby

Railsに必要なRubyバージョンは2.5.0以降です。Rubyをインストールするには、以下のコマンドを実行します。

$ brew install ruby

後々のことを考慮するとrbenvを使ってRubyをインストールすることをおすすめします。rbenvは複数バージョンのRubyをインストールすることができ、簡単にバージョンを切り替えることができます。

# rbenvのインストール
$ brew install rbenv

# rbenvの初期化
$ rbenv init

ターミナルを再起動して設定を有効にします。

rbenvを使ってRubyをインストールするには、以下のコマンドを実行します。

# インストール可能な安定バージョン一覧を表示
$ rbenv install --list

# Rubyをインストール
$ rbenv install 2.6.3

# インストールしたバージョンを表示
$ rbenv versions
* system
  2.6.3 (set by /path/to/.ruby-version)

# バージョンを切り替え
$ rbenv global 2.6.3

# 現在のバージョンを表示
$ rbenv version
2.6.3 (set by /path/to/.ruby-version)

SQLite3

Macを使っている場合、SQLiteは初めからインストールされています。Windowsを使っている場合、上記のRuby Installer for Windowsの中にSQLite3も含まれています。

Node.js

以下のページからインストーラーをダウンロードしてインストールします。

Yarn

YarnはNode.jsのnpmパッケージを使用してインストールします。そのため、上記のNode.jsのインストールが完了してから以下のコマンドを実行してください。

$ npm install --global yarn

Railsのインストール

Railsをインストールするには、以下のコマンドを実行します。

$ gem install rails

以上でRailsアプリを作成する準備ができました。

Railsをはじめよう

Railsアプリの作成

Railsアプリを作成するには、以下のコマンドを実行します。

$ rails new AppName

上記のコマンドを実行すると、ディレクトリ配下に指定したアプリ名のディレクトリが作成され、その中にRailsアプリに必要な機能がインストールされます。今後、いくつもRailsアプリを作成することを想定し、適当なディレクトリに開発用のディレクトリを作成し、その中にRailsアプリを作成していくことをおすすめします。

$ mkdir ~/Products

利用可能なオプション

Railsアプリ作成コマンドを実行すると、環境にもよりますが、コマンド完了まで数分待つ必要があります。これは、Railsアプリを構成するすべての機能をインストールしているためです。しかし、必ずしもそれらすべてが万人に必要な機能とは限りません。Railsアプリの作成コマンドには様々なオプションが用意されており、オプションを指定することで特定の機能をスキップしたりすることができます。利用可能なすべてのオプションは--helpオプションを指定すると確認できます。

$ rails new --help

例えば、Railsアプリ作成時にWebpackerをスキップするには以下のコマンドを実行します。

$ rails new AppName --skip-webpack-install

以下のように、オプションを列挙したファイル(以下の例の場合、Options.txt)を指定することもできます。

$ rails new AppName --rc=Options.txt

また、以下のコマンドを実行することで、ほとんどすべての機能のインストールをスキップすることができます。

$ rails new AppName --minimal

ほとんどすべての機能のインストールをスキップするため、コマンドは数秒で完了します。スキップした機能は後から追加することもできるため、最小限の構成で始めて後から必要な機能を追加していくということが可能です。

以下は--minimalオプションを指定して作成したRailsアプリのGemfileです。

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.3'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
gem 'rails', '~> 6.1.4', '>= 6.1.4.1'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 5.0'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'listen', '~> 3.3'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Railsアプリを作成したら、統合開発環境などで開きます。以下はVisual Studio CodeでRailsアプリを開く例です。

$ code AppName

テストサーバーの起動

Webアプリケーションの開発は、常にテストサーバーを起動して画面を確認しながら行っていくのが普通です。作成したばかりのRailsアプリですが、テストサーバーを起動して動作確認をしてみましょう。テストサーバーの起動コマンドは、必ずRailsアプリのディレクトリに移動してから実行してください。

# Railsアプリのディレクトリに移動
$ cd /path/to/AppName/

# テストサーバーを起動
$ rails server

テストサーバーが起動するまで数秒待ちます。テストサーバーが起動し、http://localhost:3000/にアクセスすると、以下のような画面が表示されます。

基本的にテストサーバーは常に起動している状態で大丈夫です。Railsアプリに変更を加えた場合でも、画面を更新するだけで即座に変更が反映されます。ただし、以下の場合はテストサーバーの再起動が必要になるのでご注意ください。

  • 新しくGemを追加した場合
  • モデル・データベースを変更した場合
  • 初期化設定を変更した場合

トップページの作成

上記の「テストサーバーの起動」セクションで確認した画面は、トップページを作成していない場合に表示されるデフォルトの画面です。このデフォルトの画面をオリジナルのトップページに変更していきましょう。

トップページを作成するには、最低でもコントローラーの作成、ビューの作成、ルーティングの設定を行う必要があります。

コントローラーの作成

コントローラーを作成するには、以下のコマンドを実行します。

$ rails generate controller Statics index

上記のコマンドを実行すると、app/controllers/ディレクトリ配下にstatics_controller.rbファイルが作成されます。

statics_controller.rb

class StaticsController < ApplicationController
  def index
  end
end

StaticsControllerクラスの中にindexというメソッド(Railsではアクションとも呼びます)がひとつ含まれています。indexアクションの中には何も記述されていませんが、Railsはコントローラー名とアクション名から自動的にレンダリングするビューを決定します(「暗黙的なレンダリング」という)。この場合、コントローラー名はStaticsでアクション名はindexなので、app/views/statics/ディレクトリ配下のindex.html.erbファイルを自動的にレンダリングします。

コントローラーについて詳しくは以下の記事を参照してください。

ビューの作成

ビューはコントローラー作成時に自動で作成されます。作成されたビューを変更します。app/views/statics/ディレクトリ配下のiindex.html.erbファイルを以下のように変更します。

index.html.erb

<h1>Railsをはじめよう</h1>

ビューについて詳しくは以下の記事を参照してください。

ルーティングの設定

ルーティングはコントローラー作成時に自動で追加されます。しかし、自動的に作成されたルーティングでは不十分なので、変更を加える必要があります。config/ディレクトリ配下のroutes.rbファイルを以下のように変更します。

routes.rb

Rails.application.routes.draw do
  # 以下を修正
  get '/', to: 'statics#index'
end

なお、上記はルートのルーティングを設定しているため、以下のように記述することもできます。

routes.rb

Rails.application.routes.draw do
  # 以下を修正
  root 'statics#index'
end

ルーティングについて詳しくは以下の記事を参照してください。

動作確認

オリジナルのトップページが作成できたので動作確認を行いましょう。テストサーバーを起動していない場合は起動し、http://localhost:3000/にアクセスすると、Railsのデフォルト画面から「Railsをはじめよう」とだけ表示する画面に変わったかと思います。これくらいの変更なら、テストサーバーの再起動を行わなくても画面を更新するだけで変更が反映されます。

まとめ

世の中にはたくさんのWebアプリケーションフレームワークが存在しますが、Railsはその中でも特に人気があります。当ブログにはRailsの使い方をイチから学習するための特設ページがあります。Railsを使ってWebアプリケーションを作ってみたいと思った方はぜひご覧いただければと思います。

関連記事

【Rails】M1チップ搭載MacでRuby on Railsの開発環境構築
# はじめに M1チップ搭載MacにRuby on Railsの開発環境を構築する手順を記載します。 - MacBook Air (M1, 2020) - macOS Monterey 12.3.1 # Homebrew ## [...]
2022年5月5日 11:56
【Rails】Rakeタスクの基本情報と作成・実行方法
# はじめに Railsには標準でRakeというGemが同梱されています。RakeはRubyで実装されたMake(UNIX系のOSで使用できるコマンド)のようなビルド作業を自動化するツールです。Ruby Make、略してRakeというわけですね。 [...]
2022年3月7日 22:12
【Rails】モデルに外部キーを設定する方法とよく起こるエラー内容について
# はじめに Railsでモデルに外部キーを設定する方法について説明します。 # モデルに外部キーを設定する ## リレーションシップ 今回は1つのブログ記事は複数のコメントを持つ1対多のリレーションシップを例に説明します。現在は` [...]
2022年2月10日 14:18
【Rails】Capybaraのfill_inメソッドを実行すると「既存レコードの内容+指定した内容」がセットされる事象の原因と対処【RSpec】
# はじめに RSpec + Capybaraを使用して、Railsアプリの統合テストを実装しています。とあるモデルの編集画面において、入力フォームの内容を書き換えた上で送信し、レコードが更新されることを確認します。 入力フォームの内容を書 [...]
2022年1月27日 21:22
【Rails】GitHubのセキュリティアラートで発見された脆弱性を解消する方法
# はじめに GitHubにはセキュリティアラートという機能があります。セキュリティアラートはリポジトリに含まれるライブラリやパッケージの脆弱性を定期的にチェックし、脆弱性のあるライブラリやパッケージが発見されたらアラートで知らせてくれるという機 [...]
2022年1月16日 10:36