基本的 each 循环 Ruby on Rails

4

我创建了一个使用HAML和Nitrous.io进行实验的应用程序,但似乎在each循环中遇到了一个基本问题。我的当前设置在正确的内容下面输出以下内容:

[#<List id: 1, name: "ToM5", telephone: 2357928154, created_at: "2013-09-03 14:58:22", updated_at: "2013-09-03 17:04:54">, #<List id: 2, name: "Tom9 ", telephone: 2345701247, created_at: "2013-09-03 14:59:40", updated_at: "2013-09-03 17:05:00">, #<List id: 3, name: "Test3", telephone: 235821421, created_at: "2013-09-03 15:27:11", updated_at: "2013-09-03 17:05:05">]

在我的索引控制器中,我有以下内容:
class ListsController < ApplicationController
  def index
    @list = List.all
  end
end

在我的索引视图中,我有以下内容:
%h2 Here they are:

= @list.each do |list|
  .row
    %span{:class => "id"}= list.id
    %span{:class => "name"}= list.name
    %span{:class => "telephone"}= list.telephone
    %span{:class => "actions"}= link_to "Edit", edit_list_path(list)

= link_to "New", new_list_path

我得到的HTML输出是:
<html>
<head>
   ...  
</head>
<body style="">
  <h1 class="heading">This is Lists</h1>
  <div class="wrap">
     <h2>Here they are:</h2>
<div class="row">
  <span class="id">1</span>
  <span class="name">ToM5</span>
  <span class="telephone">2357928154</span>
  <span class="actions"><a href="/lists/1/edit">Edit</a></span>
</div>
<div class="row">
  <span class="id">2</span>
  <span class="name">Tom9</span>
  <span class="telephone">2345701247</span>
  <span class="actions"><a href="/lists/2/edit">Edit</a></span>
</div>
<div class="row">
  <span class="id">3</span>
  <span class="name">Test3</span>
  <span class="telephone">235821421</span>
  <span class="actions"><a href="/lists/3/edit">Edit</a></span>
</div>
[#&lt;List id: 1, name: "ToM5", telephone: 2357928154, created_at: "2013-09-03 14:58:22", updated_at: "2013-09-03 17:04:54"&gt;, #&lt;List id: 2, name: "Tom9 ", telephone: 2345701247, created_at: "2013-09-03 14:59:40", updated_at: "2013-09-03 17:05:00"&gt;, #&lt;List id: 3, name: "Test3", telephone: 235821421, created_at: "2013-09-03 15:27:11", updated_at: "2013-09-03 17:05:05"&gt;]
<a href="/lists/new">New</a>

  </div>


</body></html>

我不确定这是否与Linus有关,因为Nitrous.io运行的是Linux设置?如果有人知道如何摆脱结尾处的哈希标志,那就太好了!

1个回答

9

你的错误出现在这一行:

= @list.each do |list|

Equals符号用于求值并打印结果(在这种情况下是您正在迭代的对象)。如果将其替换为破折号,则只会评估表达式,这正是您想要的。


1
如果视图使用ERB,那么你会使用<% %> - sevenseacat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接