#はじめに
今回はRuby on railsの解説記事です。
初心者向けに、わかりやすく解説していきます。
頑張っていきましょう。
今回は、記事を書く上でたかし君
に協力してもらいます。
#Ruby on rails とは
Ruby on rails とは、Webフレームワークの一種です。
最初に、そもそもフレームワークとは一体何なのかについて解説します
###フレームワークとは
フレームとは、簡単に言えば骨組み
のことです。
フレームワークの意味をwikipedia先生に聞いてみましょう。
プログラミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のことである。
相変わらず堅い言葉なので、噛み砕いて解説します。
フレームワークとは、様々な機能を提供してくれる骨組み
のことであると考えて問題ないと思います。
今度は、フレームワークの具体例をみて考えていきましょう。
####Bootstrap
何かWebサイトを作成しようとしたときに、コツコツHTMLとCSSを書いていくのは大変ですよね。
当然、何とか楽をしたいと考えます。どうすれば楽にできるでしょうか。
そうです、誰かが作ってくれたものをパクれば楽ができるのです。
しかし、Webサイトをそのままパクれば怒られてしまうし、作れるバリエーションも限られてしまいます。
ここでたかし君は考えました。
たかし君「そういえば、Webサイトに使われる部品って限られてるよな。ヘッダー部分とかボタン部分とかを個別に楽にかける枠組み
があれば楽に書けるんじゃね?」
こうして生まれたのがBootstrap
です。
BootstrapはCSSのフレームワークで、Webサイトの各々の部品ごとの枠組みを提供してくれています。
###Webフレームワークとは
ここまでの説明でなんとなく分かりましたね。
Webフレームワークとは、Webアプリを作るための枠組み
のことです。
もう一度たかし君に聞いてみましょう。
たかし君「Webアプリ作るのめっちゃだるいな。でも、Webアプリで使う機能って以外に限られてるよな。ユーザーが打ち込んだURLに応じてデータベースを操作したり、HTMLファイルを作成して送ったり、ログイン機能が必要だったりするだけじゃん。この枠組み
を誰かが作ってくれて、それをパクれば楽に書けるんじゃね?」
このようにして生まれたのが、Webフレームワークだったり、Ruby on railsだったりするわけです。
それでは、実際にRuby on railsでアプリを作ってみましょう。
#骨組みの作成 (rails new)
最初にローカルのパソコンにRubyとRuby on railsをインストールしてください。
環境構築については、色々な人が記事を書いているので割愛します。
環境構築はうまく行かないことがほとんどですが、できるまで粘り強く調べ続けてください。応援しています。
最初に、railsアプリを作りたいディレクトリに移動して、以下のコマンドを打ちましょう。
rails new qiita_project
new
の後ろは何でも好きな名前にしてください。
以下のようファイルが作成されます。
これで、Webアプリを作る際の枠組み
を作成することができました。
#サーバーの起動(rails server)
作成したqiita_project
に移動してください。
cd qiita_project
これで作成したqiita_project
に移動することができました。
次はサーバーを起動してみましょう。次のコマンドです。
rails server
次に、chromeなどのブラウザのURL欄に以下のURLを入力してください。
http://localhost:3000/
ここまでで、サーバーを起動することができました。
#コントローラーの作成 (rails generate controller コントローラー名)
以下のコードでコントローラーを作成することができます。
コントローラーが何を行うかは後に解説します。
rails generate controller home
上のコードを実行すると、app>>controllers配下にhome_controller.rb
という名前のファイルが作成されます。
home_controllerの中身を見てみましょう。
class HomeController < ApplicationController
end
このようにして、コントローラーを作成することができました。
それでは、コントローラーの解説行います。
##コントローラーとは
コントローラーを理解するためには、まず以下の図を理解する必要があります。railが動作する仕組みについてです。
順番に見ていきましょう。
まず、左のユーザーがサーバーにリクエストを送ります。右の様々な動作は、全てサーバー側の話です。
リクエスト送る
とは、サーバーに何かを要求することです。例えば、URLを入力すると、「このURLに対応するファイルを送ってこい!」と要求(getリクエスト)することになりますし、IDとパスワードを入れてログインしようとすれば、「送ったデータを使って何かしらの処理をしろ!」と要求(postリクエスト)することになります。
####②ルーティングによりどのコントローラーを使うのかを決定
ルーティングにより、ユーザーから受け取ったURLを処理します。
例えば、ユーザーからhome/top
というURLを受け取ったとします。
そうすると、ルーティングはhome#top
というルーティングに変換します。
これは、「homeコントローラーのtopアクションを利用します」という意味です。アクションというのは、コントローラーごとに設定されている「何かを行うコード」だと考えてください。
今回は、簡単のためにユーザーからは「このURLに対応するファイルを送ってこい!」と要求(getリクエスト)されたと考えます。
ユーザーから"home/top"というURLが送られてきて、それをhomeコントローラーのtopアクションを実行するという命令にルーティングしましょう。
configディレクトリ配下のroutes.rbファイルに以下のように追記してください。
Rails.application.routes.draw do
get "home/top" => "home#top"
end
####コントローラーによりviewファイルを探索
home/top
というURLがユーザーから送られてきて、ルーティングによりhome#top
に変換されたとします。
この場合、homeコントローラーのtopアクションを行うことになります。
以下のように、homeコントローラーにtopアクションを追加しましょう。
class HomeController < ApplicationController
def top
end
end
このようにコードを書くと、homeコントローラーはhome/top.html.erb
ファイルを探して、それをユーザーに返してくれます。
####viewファイルの作成
app >> views 配下のhomeディレクトリにtop.html.erbファイルを追加してください。
top.html.erbファイルを以下のように編集してください。
<h1>Hello World</h1>
このようにして、viewファイルを作成することができました。
実際にレスポンスを見てみましょう。
####ユーザーがURLを打ち込んだ場合
再び、以下のコードでサーバーを起動しましょう。
rails server
webブラウザで以下のURLを打ち込んでください。
http://localhost:3000/home/top
そうすると、以下の画面が送られてきます。
何が起きているのかを、もう一度ざっくり解説します。
http://localhost:3000/home/top
というURLが送られると、それがルーティングによりhome#top
という形に変換されます。
それにより、homeコントローラーのtopアクションが行われます。
そうすると、app >> viewsディレクトリ配下のhomeディレクトリの中のtop.html.erbファイルがrailsにより発見され、それがユーザーに送られます。
#終わりに
長くなってきたので、今回はここまでになります。
次回の記事も読んでくださると嬉しいです。
Ruby on rails を初心者向けに解説② ~リンクの作成~
Ruby on rails を初心者向けに解説③ ~データベースの作成~
Ruby on rails を初心者向けに解説④ ~命名規則とform_Tagの使い方について~
Ruby on rails を初心者向けに解説⑤ ~データベースの編集と削除~
Ruby on rails を初心者向けに解説⑥ ~バリデーションの作成~
Ruby on rails を初心者向けに解説⑦ ~フラッシュの実装~
お疲れさまでした。