Bird
Raised Fist0
Ruby on Railsframework

ERB template syntax in Ruby on Rails - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the ERB tag <%= %> do in a Rails view?
It evaluates Ruby code inside the tag and inserts the result into the HTML output.
Click to reveal answer
beginner
What is the difference between <% %> and <%# %> in ERB?
<% %> runs Ruby code without outputting it, while <%# %> is a comment and does not run or output anything.
Click to reveal answer
beginner
How do you write a Ruby if statement in ERB to conditionally show content?
Use <% if condition %> to start, then HTML or ERB code, and close with <% end %>.
Click to reveal answer
intermediate
What does <%== %> do in ERB templates?
It outputs raw HTML without escaping it, so be careful to avoid XSS security risks.
Click to reveal answer
beginner
How can you embed Ruby variables inside HTML using ERB?
Use <%= variable_name %> to insert the variable's value into the HTML output.
Click to reveal answer
Which ERB tag outputs the result of Ruby code into the HTML?
A<%= %>
B<% %>
C<%# %>
D<%== %>
What does the ERB tag <%# %> do?
AComments out code, no execution or output
BRuns Ruby code without output
CRuns Ruby code and outputs result
DOutputs raw HTML without escaping
How do you write a loop in ERB to repeat HTML content?
A<% if item in list %> ... <% end %>
B<%= for item in list %> ... <%= end %>
C<% for item in list %> ... <% end %>
D<%# for item in list %> ... <%# end %>
Which ERB tag should you use to insert unescaped HTML safely?
A<%= %>
B<%== %>
C<%# %>
D<% %>
What happens if you use <% %> in ERB?
ARaw HTML is output
BRuby code runs and output is inserted
CCode is commented out
DRuby code runs but no output is inserted
Explain how to use ERB tags to insert Ruby code and output into an HTML template.
Think about which tags run code, output, or comment.
You got /4 concepts.
    Describe how to write a conditional statement in ERB to show content only when a condition is true.
    Remember ERB uses Ruby control flow syntax inside tags.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which ERB tag should you use to display the result of a Ruby expression inside HTML?
      easy
      A. <% %>
      B. <%# %>
      C. <%= %>
      D. <%== %>

      Solution

      1. Step 1: Understand ERB tags for output

        The <%= %> tag evaluates Ruby code and inserts the result into the HTML.
      2. Step 2: Compare with other tags

        <% %> runs Ruby code without output, <%# %> is a comment, and <%== %> is not standard ERB syntax.
      3. Final Answer:

        <%= %> -> Option C
      4. Quick Check:

        Output Ruby result = <%= %> [OK]
      Hint: Use <%= %> to show Ruby results in HTML [OK]
      Common Mistakes:
      • Using <% %> which does not output anything
      • Confusing comment tag <%# %> with output
      • Trying to use <%== %> which is invalid
      2. Which of the following is the correct syntax to run Ruby code without showing output in an ERB template?
      easy
      A. <%== ruby_code %>
      B. <%= ruby_code %>
      C. <%# ruby_code %>
      D. <% ruby_code %>

      Solution

      1. Step 1: Identify ERB tags for code execution

        The <% %> tag runs Ruby code but does not insert output into HTML.
      2. Step 2: Differentiate from output tags

        <%= %> outputs result, <%# %> is a comment, and <%== %> is invalid syntax.
      3. Final Answer:

        <% ruby_code %> -> Option D
      4. Quick Check:

        Run code without output = <% %> [OK]
      Hint: Use <% %> for Ruby logic without output [OK]
      Common Mistakes:
      • Using <%= %> which outputs result
      • Using <%# %> which comments out code
      • Trying invalid <%== %> syntax
      3. Given this ERB snippet:
      <ul>
        <% items.each do |item| %>
          <li><%= item.upcase %></li>
        <% end %>
      </ul>

      What will be the rendered HTML if items = ['apple', 'banana']?
      medium
      A.
      • APPLE
      • BANANA
      B.
      • item.upcase
      • item.upcase
      C.
      • apple
      • banana
      D.

        Solution

        1. Step 1: Understand the loop and method call

          The code loops over each item in the array and outputs the uppercase version using item.upcase.
        2. Step 2: Predict the HTML output

          Each item is wrapped in <li> tags with uppercase text, so the list shows APPLE and BANANA.
        3. Final Answer:

          <ul><li>APPLE</li><li>BANANA</li></ul> -> Option A
        4. Quick Check:

          Loop with upcase output = <ul><li>APPLE</li><li>BANANA</li></ul> [OK]
        Hint: Remember <%= %> outputs evaluated Ruby code [OK]
        Common Mistakes:
        • Expecting original lowercase instead of upcase
        • Thinking <% %> outputs text
        • Confusing string literal with method call
        4. Identify the error in this ERB snippet:
        <ul>
          <% items.each do |item| %>
            <li><% item.upcase %></li>
          <% end %>
        </ul>
        medium
        A. Syntax error in the loop declaration
        B. Missing output tag; item.upcase won't display
        C. Extra closing tag <% end %> is invalid
        D. Using <%# %> instead of <% %> for code

        Solution

        1. Step 1: Check the ERB tags around item.upcase

          The code uses <% item.upcase %> which runs Ruby but does not output anything.
        2. Step 2: Understand output requirement

          To show the uppercase text, it should use <%= item.upcase %> instead.
        3. Final Answer:

          Missing output tag; item.upcase won't display -> Option B
        4. Quick Check:

          Use <%= %> to output values [OK]
        Hint: Use <%= %> to output, <% %> only runs code [OK]
        Common Mistakes:
        • Confusing <% %> with output tag
        • Thinking loop syntax is wrong
        • Believing extra end tag causes error
        5. You want to conditionally display a message in ERB only if user.admin? is true. Which snippet correctly does this?
        hard
        A. <% if user.admin? %>Welcome, admin!<% end %>
        B. <%= if user.admin? %>Welcome, admin!<% end %>
        C. <% if user.admin? %><% 'Welcome, admin!' %><% end %>
        D. <%= user.admin? ? 'Welcome, admin!' %>

        Solution

        1. Step 1: Understand conditional rendering in ERB

          <% if user.admin? %> starts an if block where literal text like "Welcome, admin!" is rendered only if true, ended by <% end %>.
        2. Step 2: Why others fail

          B: Invalid syntax (<%= if %> can't start control flow like that). C: Inner <% %> runs code but outputs nothing. D: Incomplete ternary (missing : '').
        3. Final Answer:

          <% if user.admin? %>Welcome, admin!<% end %> -> Option A
        4. Quick Check:

          Conditional literal text output = <% if %>...<% end %> [OK]
        Hint: Use <% if cond %> text <% end %> for conditional display [OK]
        Common Mistakes:
        • Using <% %> for text inside conditional (no output)
        • Incomplete ternary missing : false_expr (syntax error)
        • Using <%= if cond %> (invalid Ruby syntax)
        Recommended

        Ready to prove it?

        Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

        10 questions~5 mineasy hard