0
0
Ruby on Railsframework~5 mins

ERB template syntax in Ruby on Rails

Choose your learning style9 modes available
Introduction

ERB lets you mix Ruby code with HTML to create dynamic web pages easily.

When you want to show data from Ruby variables inside an HTML page.
When you need to run simple Ruby code like loops or conditions inside HTML.
When building views in a Ruby on Rails web application.
When you want to insert user input or database content into a webpage.
When you want to keep your HTML and Ruby code together for easier editing.
Syntax
Ruby on Rails
<%= ruby_code %>  # Inserts the result of ruby_code into HTML
<% ruby_code %>    # Runs ruby_code but does not insert output
<%# comment %>      # Comment that does not appear in output

<%= %> outputs the result of the Ruby code inside it.

<% %> runs Ruby code but does not show anything in the HTML.

Examples
Outputs the string "Hello, world!" into the HTML.
Ruby on Rails
<%= "Hello, world!" %>
Runs a condition to show "Welcome back!" only if the user is signed in.
Ruby on Rails
<% if user_signed_in? %>
  <p>Welcome back!</p>
<% end %>
This is a comment inside ERB and is ignored when rendering.
Ruby on Rails
<%# This is a comment and will not appear in the HTML %>
Loops through a list of items and outputs each item's name inside a list.
Ruby on Rails
<ul>
  <% @items.each do |item| %>
    <li><%= item.name %></li>
  <% end %>
</ul>
Sample Program

This ERB template shows a welcome message with the user's name. It then checks if there are any notifications. If yes, it lists them; if not, it shows a message saying there are none.

Ruby on Rails
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ERB Example</title>
</head>
<body>
  <h1>Welcome, <%= @user_name %>!</h1>
  <% if @notifications.any? %>
    <p>You have <%= @notifications.count %> new notifications:</p>
    <ul>
      <% @notifications.each do |note| %>
        <li><%= note %></li>
      <% end %>
    </ul>
  <% else %>
    <p>No new notifications.</p>
  <% end %>
</body>
</html>
OutputSuccess
Important Notes

Always use <%= %> when you want to show something on the page.

Use <% %> for Ruby code that controls logic but does not print.

Keep your Ruby code simple inside ERB to keep templates easy to read.

Summary

ERB lets you mix Ruby code inside HTML to make pages dynamic.

Use <%= %> to insert Ruby results into HTML.

Use <% %> for Ruby logic without output.