为什么Rails输出我的数组?

对铁轨来说很新。 构建一个假设的小应用程序,以在日历中显示员工的休假日。 我正在尝试列出那些带有清单的员工(以自定义输出),并且我得到了似乎是数组的东西,一旦循环完成就吐回来。 无法弄清楚为什么 – 我没有直接输出的要求。 当循环结束时,它似乎正在吐出。 有帮助吗?

    

这是输出:

   [#<Employee id: 1, name: "Test 1", created_at: "2012-07-06 19:58:03", updated_at: "2012-07-06 19:59:55">, #<Employee id: 2, name: "Test", created_at: "2012-07-06 21:10:10", updated_at: "2012-07-06 21:10:10">] Add Employee 

在语义上, unless在循环之后看起来不合适,但我的理解是,如果我想把它放在循环之前,我会在之后添加额外的end 。 这有关系吗? 知道发生了什么事吗?

更改<%= @employees.each do |empl| %> <%= @employees.each do |empl| %><%- @employees.each do |empl| %> <%- @employees.each do |empl| %>它将停止输出列表。 也就是说,将=更改为- 。 使用=告诉ERB输出该命令的结果。 当你调用each ,它返回列表,以便列表得到输出。

至于你的, unless ,我认为这不是必要的。 如果列表为empty? 然后每个都将返回而不实际执行任何重复,因此循环内的代码永远不会被调用。

在ERB中,只需删除=就足够了。

 <% Ruby code -- inline with output %> <%= Ruby expression -- replace with result %> <%# comment -- ignored -- useful in testing %> %% replaced with % if first thing on a line and % processing is used <%% or %%> -- replace with <% or %> respectively