Help us understand the problem. What is going on with this article?

rails レスポンスに使う見た目

ビューについて

コントローラーのアクションで処理された後に、対応するビューを探してレスポンスとして返すことがでる。
例えば「トップページを表示して」というリクエストが来た際は、それを処理したコントローラーが探し出すビューファイルにはトップページの内容が記載されている必要がある。

ビューファイル

アプリケーションの見た目を定義するファイルのこと。
ビューファイルはapp/views/コントローラー名ディレクトリに、アクション名.html.erbというファイル名で作成される。

○○.html.erb ファイル

HTMLの記述方法に加え、Rubyのコードを埋め込むことができるファイルのこと。
RailsではこのERBファイルを元にHTMLファイルを書き出し、最終的にレスポンスに含めて返すことでブラウザに表示させる。

ビューファイルの作成

ビューファイルはapp/views/コントローラー名ディレクトリに格納する。
作成したコントローラーに対応するビューファイルなので、app/views/作成したコントローラーディレクトリにビューファイルを作成。
ファイル名はアクション名.html.erbとなる。例えばindexアクションに対応するビューファイルは、index.html.erbとする。

インスタンス変数の定義

コントローラーのアクション内にインスタンス変数を定義すると、その内容をビューファイルで表示することができる。
例)@postというインスタンス変数に、文字列を代入

class PostsController < ApplicationController
  def index
    @post = "Hello"
  end
end

ビューファイルにインスタンス変数を記載

Railsフレームワーク内のビューファイルでは、ERBタグを用いることでRubyの記述を書くことができる。
例)

app/views/posts/index.html.erb
<h1>トップページ</h1>
<%= @post %>

コントローラーからビューファイルへデータを受け渡す仕組み

コントローラーで定義したインスタンス変数は、対応するビューファイルで用いることができる。
例えば作成したpostsコントローラーのindexアクションでのインスタンス変数定義だった場合、postsディレクトリのindex.html.erbでそのインスタンス変数は用いることができる。
コントローラーでDBからデータなどが代入される。
ビューファイルでインスタンス変数などのRubyの記述を用いるには、ERBタグを用いる。

ERBタグ

ERBファイルでRubyの記法を使用するためのタグ。<%= %>という記述でRubyの記法を囲う。
例)

<%= @post %>  # Rubyの記法がHTMLに埋め込める
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした