字符串显示不正确

时间:2014-01-04 00:52:47

标签: ruby-on-rails ruby ruby-on-rails-4 puts

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

旧参考代码:

<%= 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"],那为什么要这样做呢?检查一下,它不是哈希。只是一个字符串。这里发生了什么?

1 个答案:

答案 0 :(得分:4)

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

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

你写的方式非常C#。在Ruby中,使用附加到对象的方法更为常见。像数组这样的可枚举对象可以通过使用每个方法进行迭代,Ruby中的特殊结构称为块。

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