-1

所以,我有这个向用户显示电子邮件。

旧代码供参考:

<%= for email in @emails 
    # print the name
    eml = email
    eml 
    puts "<br>"
end
%>

固定、工作、稳定的代码:

<% for email in @emails  %>
    <%= email %>
    <br>
<% end %>
<%= puts @emails.inspect %>

如您所见,这是多行标签的问题。Bazar认为它会导致这个问题,但根本不会导致A问题。

老的:

而且效果很好。一样东西。因此,EML 是一个带有 的 ruby​​ 字符串HIDDEN@HIDDEN.HIDDEN,但是当它显示时,我在呈现的页面上得到了这个:["HIDDEN@HIDDEN.HIDDEN"],那么为什么要这样做呢?检查它,它不是一个哈希。只是一个字符串。这里发生了什么?

4

1 回答 1

4

这种语法看起来不太正确。如果这是使用 ERB 在视图中呈现的,您可能需要看起来更像这样的代码:

<% @emails.each do |email| %>
    <%= email %><br />
<% end %>

您编写的方式非常类似于 C#。在 Ruby 中,使用附加到对象的方法更为常见。可以通过使用 each 方法和 Ruby 中称为块的特殊结构来迭代像数组这样的可枚举对象。

http://www.ruby-doc.org/core-2.1.0/Array.html#method-i-each

于 2014-01-04T01:03:44.937 回答