【Ruby on Rails入門】具体的な開発の流れを一から解説

Ruby on Railsについて入門レベルでも分かる情報がほしい
入門者向けにRuby on Railsを使った開発手順が知りたい
そもそもRuby on Railsがよく分かってないかも……

今回の記事では、このような疑問にお答えしていきます。

Ruby on Railsとはなにか? そもそもここからの理解が曖昧になっている方もいるのではないでしょうか?そこでまずは、Ruby on Railsがどういった意図で作られたのかを知っていただき、環境構築や開発手順についても解説します。ちなみに、Ruby on Railsはプログラミング言語ではありません。

よくRubyとRuby on Railsをプログラミング言語として混同される方もいますが、この違いについても後ほど詳しく解説しますね。また、入門者におすすめのプログラミング学習サイトも紹介していますので、最後まで読んでいただけると幸いです。

Ruby on Railsとは?

Ruby on Railsを簡潔に説明すると、Webアプリケーション開発に使われるフレームワークのことです。しかし、この説明だけではよく分からないですよね?ではまず「Webアプリケーション」と「フレームワーク」とはなにか?についてちょっと深堀りして解説しますね。

Webアプリケーションの概要

Webアプリケーションとは、インターネット(Web)から利用できるアプリケーションのことであり、Google ChromeやSafariといったブラウザで操作することができます。Webアプリケーションの例をあげると「YouTube」「Twitter」「Amazon」など。

またWebアプリケーションは、よく「Webアプリ」とも略されるので「要するにWebサイトのこと?」と勘違いされやすいですが、ここはちょっとだけ違います。「Webサイト」と呼べるのは、企業の公式サイトなどになり、ユーザーが興味のあるページから情報収集をすることが主な目的となるホームページのことになります。

そしてWebサイトとは少し異なる「Webアプリ=Webアプリケーション」の特徴は、「YouTube」であれば投稿動画への評価・コメントができたり、「Twitter」ならば、いいねやアカウントをフォローしたりと、自分から能動的に何かしらのアクションを起こせます。「Amazon」であれば、商品の検索・購入が可能ですよね?

このように「ユーザーの要望を満たすWebサービスを提供する」ことが、Webアプリケーションの役目になります。Webアプリケーションが動作する仕組み・開発の流れを知りたい方は、以下の関連記事も参考にしてくださいね。

Webアプリとは?サービスの仕組みや開発の流れを理解しよう
更新日 : 2020年3月13日

フレームワークについて

「フレームワーク」とは、Webアプリなどの開発を効率化してくれる「枠組み」となるものです。フレームワークは、始めから開発に必要な機能を備えていますので、記述するコードを最低限に抑え、生産性の向上と開発コストの削減にも繋げられます。また、プログラミングは個々によって少しコードの記述方法が違う場合もあるので、フレームワークを使用することでコードの記述方法も統一されて、エラーやバグの発生リスクを減らすことができます。

当然、フレームワークの独自の書き方を覚える必要はありますが、Web開発においてスピーディーな機能の実装を実現するためにフレームワークは欠かせません。ぜひ、実践レベルで使いこなせるようになってください。

ここまでの解説で「Ruby on Railsとなにか?」についてご理解いただけたでしょうか?Ruby on Railsとは、Webアプリケーション開発を効率化するフレームワークの一つ、ということです。

Ruby on RailsとRubyの違いについて

「Ruby」と「Ruby on Rails」の違いについては、ここまでの解説と重複する部分もありますが、曖昧にされている方もいますので、明確な違い・特徴を解説しておきますね。

Rubyはプログラミング言語

「Ruby」は、オブジェクト指向型のプログラミング言語です。1995年に『まつもとゆきひろ』さんという日本人の方が開発しました。

Rubyの特徴は、ソースコードがシンプルで分かりやすく、自然言語のように書けることですね。プログラミングの楽しさを追求して開発された言語でもあるRubyは、初心者でも比較的スムーズに学習できるプログラミング言語です。

そんなRubyは、Webアプリ開発を始め、業務システム開発、ゲーム開発など幅広い分野で使われています。

Ruby on Railsはフレームワーク

「Ruby on Rails」は、Webアプリケーション開発のフレームワークとして、2004年にデンマークで作られました。Rubyの開発者が日本人なので、Ruby on Railsも国内で作られたのだろうと思われがちですが、こちらに関しては海外でその仕組みが生み出されたというわけです。

フレームワークについてはすでに解説しているので、ここでは割愛します。Ruby言語を使ってWebアプリ開発などをする現場では、作業効率化のためにRuby on Railsは積極的に活用されています。

また、Ruby on Railsを使うために、Ruby言語を覚えるエンジニアが増加したといわれるほど、Ruby on Railsは多くの開発者から支持されています。Ruby言語と同様に無料で利用できることもあり、現在では世界中にシェアを広げるフレームワークとして有名です。

Ruby on Railsの環境構築

まず開発手順とは違いますが、Railsの環境を構築しないことには始まりません。環境構築にもいくつかやり方があって、実は結構難しかったりします。

個人個人の環境やバージョンによって差異がでることもありますが、この差異をなくすためには仮想環境を使って環境構築を行うことが一般的ですね。RailsのTutorialでも推奨されています。以下の記事でとてもわかりやすく紹介されているので、環境構築から始めるという方は参考にしてみてください。

初心者でもかんたん!Ruby on Rails の開発環境の構築手順(Mac/Windows 両対応)
更新日 : 2020年3月2日

Ruby on Railsを使った開発手順

ここからは、Ruby on Railsを使用した開発手順について解説していきます。関連記事も読んでいただけると、より理解が深まるので参考にしてくださいね。

手順1:アプリケーションの作成

さて、環境が整ったらそれは実際の開発手順を見ていきましょう。まずは、アプリケーションの作成を行います。

利用するコマンドは以下です。

rails new アプリケーション名

このコマンドを行うことで必要なファイルなどを全て生成してくれます。実際に行って見ましょう。

rails new myapp

すると様々なファイルが自動で作成されているのではないでしょうか? これらはフォルダ配置などにも意味があるので、むやみにいじらないようにしましょう。

手順2:Gemの追加

Railsの雛形を作った後は、必要なGemを追加していきましょう。GemとはRubyのパッケージ管理ですが、こちらに必要なライブラリなどを記述しておくことで開発がスムーズに行えます。

ここらへんは流れというよりは細かな内容になってしまうので、詳しく知りたい方は以下を参考にして見てください。

【Rails入門】初心者が知っておくべき3つのgem
更新日 : 2020年3月2日

必要なGemをGemfileに書き込んだら以下のコマンドより一斉にインストールしていきましょう。

bundle install

本記事では割愛しますが、DBなどの設定なども行ったのち、以下コマンド打つと実際にWebアプリケーションとして動作します。

rails server

このような画面が表示できれば成功です。splite3系のエラーが出る場合はDBのバージョンが悪いのでgem 'sqlite3', '~> 1.3.6’とGemfileに記載してbundle installをし直してみてください。

手順3:モデルの作成

次にモデルを作成していきましょう。モデルとは、データベースとのやりとりを行うクラスのことでMVCモデルのMに当たります。

本記事ではテストとしてTestテーブルを作成してみます。コマンドは以下の通りで、一文字目は大文字で始めることに気をつけましょう。また、複数形も禁止されているので単数名をつけましょう。

rails generate model Test

作成したら、mode/migrateに進んで以下コマンドを実行しましょう。

rake db:migrate

本記事では開発の流れを説明するだけなのでテストデータを流し込んだりはしませんが、実践的にどのように使うかなどは以下の記事を参考にしていただければ幸いです。

手順4:コントローラの作成

次はコントローラの作成をしていきます。コントローラとは実際に返す内容を決めるための処理を行います。

コントローラの作り方は以下の通りです。

rails generate controller  Greeting sayhello saygoodmoring

無事実行されると、app/controllers以下にファイルができているのでみてみましょう。

class GreetingController < ApplicationController
  def sayhello
    
  end

  def saygoodmoring
  end
end

このようになっていますね。実際に以下のように処理を追加しておきましょう。

class GreetingController < ApplicationController
  def sayhello
    render html:"hello!"
  end

  def saygoodmoring
    render html:"goodmorning!"
  end
end

この内容について次章で説明するので深く考える必要はありません。コントローラについて詳しく学びたい方は以下記事を参考にしてみてください。

手順5:ルーティングの作成

次にルーティングの設定をしていきます。ルーティングとは簡単に言うとこのURLに来たらこの処理をしてくださいと言う部分のURLと処理を紐づける役割です。

ここで言う処理とはコントローラに書いた内容のことですね。実際にはconfing内のroutes.rbにはその処理を書いていきます。

Rails.application.routes.draw do
  get 'greeting/sayhello'

  get 'greeting/saygoodmoring'
end

実はコントローラを作った際にある程度ルーティングは自動生成されているので、すでにroutes.rbにはこのような内容が書かれています。これは、コントローラと紐づいていて、greeting/sayhelloというURLにきたら、greeting_controller.rbのsayhelloメソッドを実行するということになっています。

実際にrails severを立ち上げた状態で'http://localhost:3000/greeting/sayhello'にアクセスしてみると以下のようになっています。これはrender html:"hello!”部分がhelloという文字を返していることを表しているためです。

ちなみに'http://localhost:3000/greeting/saygoodmoring'にいくと以下のようになりますね。

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

手順6:ビューの作成

さて、先程は直接"hello"や"goodmornig"という文字を返しましたが、実際のプログラムはそんな単純ではありませんよね。ビューは実際の画面のことで.erbというファイルに書くのが一般的です。erbとはHTMLのRuby版と思っていただければ良いでしょう。

これもコントローラを作成した時にapp/views以下に自動で作成されます。なので以下のようにコントローラを変えてあげるとviewsを参照してくれます。

routes.rb

class GreetingController < ApplicationController
  def sayhello
    render "greeting/sayhello"
  end

  def saygoodmoring
    render "greeting/saygoodmoring"
  end
end

このようにRailsは自動で必要なものを作成してくれて、ファイル構造などが決まっているのでルールに則って行えば余分な記述をしなくてもよいことから、慣れれば開発スピードがとても早いことがわかりますね。

本番環境にアップする「デプロイ」

この章はRailsと直接関係があるわけではないですが、実際にローカル環境で開発したのちサーバにアップするまでが開発の流れとなります。このように、本番環境にアップすることをデプロイと呼びます。

以下記事にHerokuへのデプロイ方法がまとめられているので、デプロイに興味がある方は参考にしてみると良いでしょう。

Ruby on Rails入門者用の学習サイト5選

Ruby on Railsの使い方については、以下で紹介する学習サイトでも学べるので、まだ入門レベルという方はこちらも活用してみてください。

Progate

Progate(プロゲート)」は、Ruby on Rails入門者でも分かりやすい無料で始められる学習サイトですね。スライドで丁寧に解説をしつつ、知識を学んだらすぐにブラウザ上で直接コードを書き、実行結果も同一の画面で確認できます。

「学習コース」で学んだことは「道場コース」で復習するようになっているので、着実にスキルを自分のものにしていけます。PCのブラウザ上で全てが完結するので、環境構築などは一切不要。モチベーションを落とすことなく学べますし、初心者にはかなりおすすめの学習サイトです。

ドットインストール(Ruby on Rails入門)

ドットインストール」といえば、定番のプログラミング学習サイトですよね。Ruby on Railsの概要解説からアプリを完成させるところまで、全28回の動画レッスンを視聴できます。

基本的に一つの動画は3分以内に収まっていますので、全28回といってもそんなに長い時間にはなりません。各動画にはメモ機能があり、プレミアム会員になると動画内容を文字起こしで見られたり、ソースコードの閲覧・比較、再生速度の変更、現役エンジニアへの質問など、便利な機能が利用できるようになります。

レッスン動画は見るだけではなく、実際にソースコードを書いてみることも忘れないでくださいね。

paizaラーニング

paizaラーニング」は、レッスン動画を見ながら、ブラウザ上で実際にソースコードを記述・実行を試してプログラミング学習を進められるオンラインサービスです。まずは、Ruby on Railsの概要を学ぶところから始まるので、初心者の方でも戸惑わずにプログラミング学習を進められます。

paiza会員になると、 受講状況や進捗度が確認できるようになり、学習記録も残るので、着実なスキルアップに繋がることでしょう。

Rubyがミニツク

Rubyがミニツク」は、その名の通りRuby関連に特化した学習サイトです。学習コースはいくつかに分けられており、各レッスンはテキスト、動画 、ドリル、演習といったコンテンツを利用しながら知識とスキルを身につけていきます。

もちろん、Ruby on Railsの学習コースもありますし、Ruby技術者認定試験(Silver)対策コースまで用意されているので、資格取得を目指したい方は、利用してみましょう。

シラバス

シラバス」は、すでにネットで運用されているWebサービスを真似して開発してみようという、かなり実践的な学習サイトです。Ruby on Railsを使って開発するルートもあり面白そうですが、完全な初心者の方はある程度スキルを身につけてから利用することをおすすめします。

ただ、エンジニアとして最終的には、実際に動くサイトやアプリを作れなければいけませんので、力試しとして一度は挑戦してみてください。

まとめ

Ruby on Railsについて概要や開発手順、学習サイトまで解説してきましたが、いかがでしたでしょうか?

Ruby on Railsを使った開発手順では、それぞれについて詳しく深堀りした記事へのリンクを参考にしていただければ詳しく理解できると思います。作成の順番などが前後することはもちろんありますが、実際の作成から開発、デプロイまではこのような雰囲気で進んでいくので流れは掴めたのではないでしょうか。

また、プログラミング学習サイトについては、入門レベルであれば学習のしやすさから「Progate(プロゲート)」を一番におすすめしたいですが、自分の好みやスキルレベルに合わせて、ほかの学習サイトもうまく活用してもらっても構いません。

Ruby on Railsは、慣れれば作業の効率化や開発コスト削減にもなる便利なフレームワークなので、この機会にぜひ学んでみてくださいね。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー