查看在循环收集后不会返回结果

时间:2014-09-30 15:58:36

标签: ruby-on-rails

应该是一个非常简单的问题,但由于某些原因,我感到茫然。我的代码:

class HomeController < ApplicationController
  before_action :authenticate_user!
  def index
    @company = current_user.company
  end
end

查看:

<div id='calendar'/>
<%= render 'layouts/footer', object: @company %>

部分:

<div id='footer'>
    <% @company.employees do |employee| %>
      <%= employee.email %>
    <% end %>
</div>

我尝试删除object: @company,我已经使用pry来检查变量的传递,到控制器,视图和部分阶段。在循环范围之外,我能够在内部找到这些变量。

重复:将binding.pry置于我的员工循环内部,从不触发。

将它放在循环触发器之外,甚至可以读取变量:

[1] pry(#<#<Class:0x000000063d2498>>)> @company.employees
  Employee Load (0.2ms)  SELECT "users".* FROM "users"  WHERE "users"."company_id" = ?  [["company_id", 1]]
#<ActiveRecord::Associations::CollectionProxy [#<Employee id: 1, email: "ilia.reingold

为什么我的循环突然变得不可见?

1 个答案:

答案 0 :(得分:3)

你实际上从未告诉Rails / Ruby循环。

<div id='footer'>
    <% @company.employees.each do |employee| %>
      <%= employee.email %>
    <% end %>
</div>

注意添加到表达式

.each

有关每个here的更多信息(链接到Array类,但它与ActiveRecord关系相同)