前 基礎Ruby on Rails Chapter1 アプリケーションの新規作成
次 基礎Ruby on Rails Chapter3 コントローラ
Railsアプリケーションのディレクトリ構造
ディレクトリの役割
asagaoフォルダの中
- app モデル、ビュー、コントローラ
- bin 各種スクリプトファイル
- config ルーティングやデータベースなどの設定ファイル
- db マイグレーションスクリプトやシートデータ
- doc 開発者向けのドキュメント
- lib 自作のライブラリやrakeファイル
- log ログ
- public アプリケーションを介さずに送信する静的なファイルを配信
- storage Active Storageが利用する
- test テストスクリプト
- tmp 一時ファイル
自分が作ったページをサイトのトップページにする
コントローラとアクションの作成
コントローラを作成する前に
cd ~/rails/asagao
次の内容のファイルをgenerators.rbで作成してconfig/initializersディレクトリの下に置く。
config/initializers/generators.rb
Rails.application.config.generators do |g|
g.helper false # ヘルパーを生成しない
g.assets false # CSS, JavaScriptファイルを生成しない
g.skip_routes true # config/routes.rbを変更しない
g.test_framework false # テストスクリプトを生成しない
end
- bin/rails g コマンドが生成するファイルを減らして、Railsの学習を進めやすくする。
コントローラの作成
「rails g controller コントローラ名 アクション名」でコントローラとアクションを生成できる。
$ bin/rails g controller top index
create app/controllers/top_controller.rb
invoke erb
create app/views/top
create app/views/top/index.html.erb
ルーティングの設定
config/routes.rbに「root "top#index"」を記述する。
config/routes.rb
# config/routes.rb
Rails.application.routes.draw do
root "top#index"
end
ビューの作成
app/views/top/index.html.erbを編集する。
app/views/top/index.html.erb
<h1>こんにちは</h1>
<p>これからRailsの勉強を始めます。</p>
変数の表示
app/controllers/top_controller.rbにインスタンス変数を追加する。
class TopController < ApplicationController
def index
@message = "おはようございます!"
end
end
app/view/top/index.html.erbに変数を追加する。
app/view/top/index.html.erb
<h1><%= @message %></h1>
<p>これからRailsの勉強を始めます。</p>