LoginSignup
6
5

More than 5 years have passed since last update.

埋め込みRuby(erb)のおさらい <% %> <%= > 前半はコントローラーとルーター

Last updated at Posted at 2018-11-17

11分までコントローラとルーター、アクション
rails は ページを作る際に、まず、コントローラー を作る。(rails g) MVCで言う所の、cである。

例、>> rails g controller home rails  generate   ➡️生み出すの意

(app/controller/home_controller.rb)

controllerを作ると、  Viewディレクトリにも  home ができる。

この中にviewファイルを作っていく。(htmlファイル)

新しくページを追加していく際は、  アクションというものを追加していく

アクションとはアクセスがきた時に、具体的にどのviewファイルを返すのかという処理行う

アクセスがきた時に、ルーター(routes.rb)というところで、どのcontrollerのアクションに、処理を任せるのかを記述する

routes.rb

Rails application.routes.draw do

  root to: `home#index`  ➡️rootはローカルホスト3000のこと。ここではその ルートにきた時に、
                                                    homeコントローラーの インデックスアクションの処理を実行するということ
end

該当するのはこちら↓

home_controller.rb

class HomeController < ApplicationController

 def index   ➡️この部分がルーターファイルで実行された。
 end
end

def indexをhtmlfileを返すようにしたい↓

viewsディレクトリの対応する、homeディレクトリの中に、アクションとおんなじ名前のhtmlファイルを作成する。今回は
index.html.erb

ここで作ったのはviewsの中のhomeの中のindexhtmlファイル

ここまでのおさらい

まずアクセスがきた時に routes.rbのなかで、どこの コントローラーアクションに、処理を任せるか  を記述した

railsには名前の命名規則の対応がある

アクションとおんなじ名前のhtmlを自動で返すことになる


.erbの拡張子の意味

拡張子をつけるとrubyのコードを埋め込むことができる

index.html.erb
<h1>これはトップページです<h1>
<%= request.url %>・・・・・・・・・・request.urlこの部分はプログラミングのコードで普通のhtml
                                                     ファイルには組み込めないのだが、.erbとすることで埋め込むことができる
                現在アクセスしているurlを表示してくれる

その場合、<% %>を使う   <%= %>

もう一つ学習すると

index.html.erb

<h1>これはトップ<h1>

<% if request.url == 'http://localhost3000' %>

   <h2>これは自分のパソコn<h2>

<% else %>

   <h2>自分のパソコンで動かし〜<h2>
<% end %>


<%= %>と<% %>の違い

<%= %>は実際表示させたい時のみ

<% %>は処理

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5