2012-07-06 59 views
2

相当新的轨道。构建一个假想的小应用程序,以显示员工在日历中的假期。我试图用清单列出这些员工(为了自定义输出),并且我得到了看起来是阵列的东西,一旦循环结束,就向我吐口水。不明白为什么 - 我没有要求直接输出。当循环结束时它似乎正在吐出。任何帮助?为什么Rails输出我的数组?

<%= @employees.each do |empl| %> 
    <label><%= check_box 'employee','id',{:checked => 'checked' },empl.id %> 
    <%= link_to empl.name, edit_employee_path(empl), :target => '_blank' %></label> 
<% end unless @employees.empty? %> 
<%= link_to 'Add Employee', new_employee_path %> 

而这里的输出:

<label><input name="employee[id]" type="hidden" value="0" /><input checked="checked" id="employee_id" name="employee[id]" type="checkbox" value="1" /> 
    <a href="/employees/1/edit" target="_blank">Test 1</a></label> 
<label><input name="employee[id]" type="hidden" value="0" /><input checked="checked" id="employee_id" name="employee[id]" type="checkbox" value="2" /> 
    <a href="/employees/2/edit" target="_blank">Test</a></label> 
[#&lt;Employee id: 1, name: &quot;Test 1&quot;, created_at: &quot;2012-07-06 19:58:03&quot;, updated_at: &quot;2012-07-06 19:59:55&quot;&gt;, #&lt;Employee id: 2, name: &quot;Test&quot;, created_at: &quot;2012-07-06 21:10:10&quot;, updated_at: &quot;2012-07-06 21:10:10&quot;&gt;] 
<a href="/employees/new">Add Employee</a> 

语义上环后unless显得格格不入,但它是我的理解是,如果我想要把它放在循环我会加入之前之后再加end。那是相关的吗?任何想法发生了什么?

回答

3

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

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

+0

我知道这将是愚蠢的(对我来说,不是你明显),但我只是无法到达那里。而'除非'在那里,因为它显示了一个空阵列,否则(我没有想到三次),但你是对的,如果我解决这个问题,我不会需要这个。谢谢! – 2012-07-06 21:21:54

+0

后续:为什么'-'?看起来,删除'='完全可以做到这一点。 '''做什么? – 2012-07-06 21:22:18

+0

我有一段时间没有使用ERB,所以我有点生疏。我相信'-'会阻止它向文件中对应于该行的HTML添加空行。 – Emily 2012-07-06 21:24:19

0

在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 
相关问题