railsでページが表示されるには
- View
- Controller
- routing
上記3つがrailsでページを表示させる上で必要です。
viewの作成
ブラウザからリクエストが飛んできてルーティング→コントローラーが受けます。その後どのviewを表示させるのかコントローラが決め、表示させます。viewはviewsフォルダに置かれています。html.erbが多く、erbはembedded rubyの略でhtmlにembeddedさせているrubyファイルになります。
コントローラの作成
コントローラファイルはapp/controllersの中に格納されています。
ルーティングの設定
ルーティングはURLのリクエストが飛んだ際にどのコントローラのどのアクションを行うかを決める箇所です。config/routes.rbが対応箇所になります。
例
Rails.application.routes.draw do
get "home/top" => "home#top"
end
# get URL => "コントローラ名#アクション名"
上記3点をコマンドで作成する
rails generate controller home top
# rails generate controller コントローラ名 アクション名
controllerの命名は上記記事が分かりやすい
なおRailsでは1つのモデルを扱うために1つのコントローラを作成する場合が多いのですが、その場合コントローラ名はモデル名を複数形にしたものを付ける場合が多いです。
modelがあるものの場合、基本複数形と考えていい。
ページをカスタマイズする
表示されるのはビューにあるerb
実際に表示されるのはerbというembeded rubyと呼ばれるファイル形式のものです。そのままの意味でHTMLなどにrubyのコードが混ざっているものになります。
- 基本は<% %>で囲ったrubyのコードが入る
- もしrubyのコードで生成したものを表示させたい場合<%= %>で囲う
リンクの設定
<a href="/">TweetApp</a>
上記のようにルーティングと同じ値をhref内に記入する。
CSSをカスタマイズする
CSSもrails gコマンドで生成される。
画像の保存場所
画像はpublicフォルダの中に格納される
アクションで定義された変数をビューに持っていきたい時
アクションで定義された変数は基本ビューで使えないが@をつけると持ってこれる。