はじめに
こんにちは、jjj0331です。
Rialsの学習を始めて3か月ほど経過したので、
これまで学習してきたことをまとめようと思います。
環境構築について
RailsをローカルPCで準備するためには
・Rubyのインストール
・SQLiteのインストール
・Railsのインストール(gem install rails)
→Railsのインストールが成功すれば:「rails -v」でVersion確認
Appの作成方法と、サーバー起動方法
rails new myapp
myappというファルダーが作成されていれば成功
rails server
ブラウザで http://localhost:3000 にアクセスし、Railsのウェルカムページが表示されれば、環境構築は成功です。
myappの各フォルダーの役割
・app:「Controller」,「view」ファルダーが存在し、アプリの中心になるフォルダー
・config:「router.rb」というファイルが重要な役割があり、Appのルーティングを設定する
・db:データベースのデータとmigrateファイルが保存されており、これも重量なファイルとなる
config/router.rbについて
改めて、RailsはWebアプリケーションを開発するためのフレームワークであり、ルーティング設定が必要です。例えば、「http://google.com/」
というURLをブラウザに打ち込むとGoogleの検索画面に遷移するように、開発するアプリケーションでも特定のURLに対して特定の画面に遷移する設計が必要です。この設計を担っているのが「routes.rb」です。
Rails.application.routes.draw do
get "/jjj0331", to: "test#index"
end
解説:「http://localhost:3000/jjj0331」
というURLに対してGetリクエストが来た場合、「test」コントローラクラスのindexメソッドを実行する。
準備編:「test」コントローラクラスとは
コントローラクラスを説明する前に、実際にコントローラクラスを作成してみましょう。
以下の手順で
appファルダーの直下のcontrollerに「test_controller.rb」が作成されます。
cd myappでmyappファルダーに移動済みであることを想定
rails generate controller Test index
以下のようなLogが出力されれば成功です
create app/controllers/test_controller.rb
invoke erb
create app/views/test
create app/views/test/index.html.erb
....(省略)
ここで重要なのが、
「test_controller.rb」とは別に「app/views/test/index.html.erb」が作成されていることです。
解説編:「test」コントローラクラスとは
では、app/controllers/test_controller.rbを開いてみましょう
class TestController < ApplicationController
def index
end
end
ApplicationControllerクラスを継承している「TestController」には、
indexメソッドがあるがこのメソッドの役割こそが画面の遷移先を指定するメソッドとなる。
まとめると
router.rbで「http://localhost:3000/jjj0331」
というURLが来た際に、testにあるindexメソッドを実行してと決める。
testコントローラクラスのindexメソッドでは、表示する画面を決める(レンダリング先を決める)。
http://localhost:3000/jjj0331にリクエストがあった場合、
indexメソッドが実行されて
def index
(本来であれば様々な処理が実行され)
render 'AAA'
(→すべての処理が終了後、AAAという画面を表示してという意味)
end
では、
def index
end
は何も記載されていないが「表示する画面」っていうのは?と疑問が生じると思うが、
これはRailsのデフォルトの処理で、
「app/views/test/index.html.erb」がレンダリング先となる。
つまり
<h1>Hello, Rails!</h1>
みたいに、「index.html.erb」に追記すると
Railsが起動した状態(rails server)後にブラウザに対して、
「http://localhost:3000/jjj0331」を入力すると
Hello,Railsが表示されるようになる。
まとめ
今回はRailsの環境構築から、静的アプリの作成方法について解説しました。次回はモデルしようしてDBにデータを保存する方法などを記事にしたいと思います。