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%>