HTMLページ出力

ページ出力フロー

config/routes.rb でURLマッピングを設定します。

Sandbox::Application.routes.draw do
  match 'pages/home' => "pages#home", :as => pages_home
end

上記例では URL pages/home に対し、pages コントローラの home アクションにマッピングし pages_home という設定名を付けています。rake routes コマンドで設定を確認できます。

% bundle exec rake routes
pages_home GET /pages/home(.:format) pages#home

match ':controller/:action' => '(:controller)#(:action)'. :as => (:controller)_(:action) のフォーマットであれば、以下のように省略できます。

Sandbox::Application.routes.draw do
  match 'pages/home'
end

app/controllers/pages_controller.rb を作成し home メソッドを定義します。

class PagesController < ApplicationController
  def home
  end
end

テンプレート app/views/pages/home.html.erb を作成します。

<h1>Home</h1>
<p>Hello World!</p>

レイアウトテンプレート app/views/layouts/application.html.erb を作成します。yield 文の箇所に app/views/pages/home.html.erb が差し込まれます。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Sandbox</title>
</head>
<body>
<%= yield %>
</body>
</html>

/pages/home または /pages/home.html で作成したページが表示されることがわかります。

このページをルートURL / で表示させてみましょう。public/index.html が存在するとこのファイルが表示されますので削除しておきます。

% rm public/index.html

root :to => '(:controller)#(:action)' と指定すると、URL / で表示されることが確認できます。

Sandbox::Application.routes.draw do
  root :to => 'pages#home'
end