Ruby on Rails 3中的 .each do 问题

7

我是一个刚接触Ruby on Rails的新手,一直在学习中,但好像遇到了一个无法解决的问题。

使用Rails 3.0.9和Ruby 1.9.2版本。

我在视图中运行以下语句:

<%= @events.each do |f| %>
    <%= f.name %><%= link_to "View", event_path(f) %><br/><hr/>
<% end %>

这是我的控制器中的代码:

class AdminController < ApplicationController
  def flyers
    @events = Event.all
  end
end

这段代码遍历每个记录并输出相应的名称,但问题在于最后它显示了所有记录的所有信息,如下所示:

    [#<User id: 1, username: "test account", email: "test@gmail.com", password_hash:    "$2a$10$Rxwgy.0ZEOb0lMGEIliPBeB/jPSp8roeKdbMvXcLi32R...", password_salt: "$2a$10$Rxwgy.0ZEOb0lMGEIliPBe", created_at: 2111359287.2303703, updated_at: 2111359287.2303703, isadmin: true>]

我是这个网站的新手,不确定你是否需要更多细节,但是任何帮助都会受到赞赏,毕竟我还在学习。

提前致谢。

2个回答

13

你应该在.each语句中使用<%,而不是<%=,因此:

<%= @events.each do |f| %>

应该是这样的

<% @events.each do |f| %>

9

.each在循环结束时返回整个数组。 <%= ... %>打印出语句的值,这是由.each返回的值。 <% ... %>不会打印出值。因此你应该使用:

<% @events.each do |f| %>
    <%= f.name %><%= link_to "View", event_path(f) %><br/><hr/>
<% end %>

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