应该是一个非常简单的问题,但由于某些原因,我感到茫然。我的代码:
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
为什么我的循环突然变得不可见?
答案 0 :(得分:3)
你实际上从未告诉Rails / Ruby循环。
<div id='footer'>
<% @company.employees.each do |employee| %>
<%= employee.email %>
<% end %>
</div>
注意添加到表达式
的.each
有关每个here的更多信息(链接到Array类,但它与ActiveRecord关系相同)