所以,我有这个向用户显示电子邮件。
旧参考代码:
<%= for email in @emails
# print the name
eml = email
eml
puts "<br>"
end
%>
固定,工作,稳定代码:
<% for email in @emails %>
<%= email %>
<br>
<% end %>
<%= puts @emails.inspect %>
如您所见,这是多行标记的问题。巴扎尔认为这会导致这个问题,但根本不会导致问题。
OLD:
它工作得很好。一件事。因此,EML是一个带有HIDDEN@HIDDEN.HIDDEN
的ruby字符串,但是当它显示时,我会在呈现的页面上得到它:["HIDDEN@HIDDEN.HIDDEN"]
,那为什么要这样做呢?检查一下,它不是哈希。只是一个字符串。这里发生了什么?
答案 0 :(得分:4)
这种语法看起来不太合适。如果使用ERB在视图中呈现它,您可能需要看起来更像这样的代码:
<% @emails.each do |email| %>
<%= email %><br />
<% end %>
你写的方式非常C#。在Ruby中,使用附加到对象的方法更为常见。像数组这样的可枚举对象可以通过使用每个方法进行迭代,Ruby中的特殊结构称为块。