ActionMailer view template:

You are still getting all the indentation from the iterations that are
skipped (i.e., where the currency is not USD).

<% for currency in @rates -%>
   <% next unless currency[2] == 'USD' -%>
   <%= currency[2] %> ............... <%= currency[4] %>
<% end -%>

I'm not sure you need the minus sign on an emitting tag (<%=) to
suppress the linefeed.

Does this help?

Steve Ross wrote:

You are still getting all the indentation from the iterations that are
skipped (i.e., where the currency is not USD).

<% for currency in @rates -%>
   <% next unless currency[2] == 'USD' -%>
   <%= currency[2] %> ............... <%= currency[4] %>
<% end -%>

I'm not sure you need the minus sign on an emitting tag (<%=) to
suppress the linefeed.

Does this help?

Yes. Now that I know what is going on this works as I wish:

<% for currency in @rates
     usdd = "#{currency[2]} ............... #{currency[4]}" if
        currency[2] == 'USD'
   end -%>

      <%=usdd%>