2017-01-17 9 views
0

Я делаю Руководство по началу работы с Rails на http://guides.rubyonrails.org/getting_started.html, и я до последней секции 5.8. Мой вывод содержит эту дополнительную строку, и я не могу понять, откуда она взялась. Кто-нибудь может мне помочь?Почему мой код erb приводит к отметкам времени, когда учебник не работает?

[#<Article id: 1, title: "Test", text: "tests", created_at: "2017-01-17 20:01:14", updated_at: "2017-01-17 20:01:14">] 

Учебник код -

<h1>Listing articles</h1> 

<table> 
    <tr> 
    <th>Title</th> 
    <th>Text</th> 
    </tr> 

    <% @articles.each do |article| %> 
    <tr> 
     <td><%= article.title %></td> 
     <td><%= article.text %></td> 
     <td><%= link_to 'Show', article_path(article) %></td> 
    </tr> 
    <% end %> 
</table> 

Мой код это -

<div> 
<%= @articles.each do |article| %> 
    <div> 
     <div>Title:</div> 
     <div><%= article.title %></div> 
     <div>Text:</div> 
     <div><%= article.text %></div> 
     <div><%= link_to 'Show', article_path(article) %></div> 
    </div> 
<% end %> 
</div> 

ответ

3

Снимите =

<%= @articles.each do |article| %> 

должен быть

<% @articles.each do |article| %> 
+0

Спасибо, не могу поверить, что я пропустил это, я сравнил около 10 раз, прежде чем публиковать вопрос. Интересно, почему <% = действует по-разному с <% здесь? – SMC

+1

Взгляните на [этот вопрос SO] (http://stackoverflow.com/questions/7996695/what-is-the-difference-between-and-in-erb-in-rails). – mmichael

2

Просто замените <%= @articles.each do |article| %> с <% @articles.each do |article| %>

Объяснение: В Ruby, вы не должны указывать возвращаемое значение. Последняя инструкция каждого метода будет возвращена автоматически. @articles.each поэтому вернет полный массив. Значок erb <%= просто печатает это.