2014-09-30 2 views
0

Должно быть, очень простой вопрос, но почему-то это ошеломило меня. Мой код:Просмотр не вернет результат после прохождения через коллекцию

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, я использовал Поддеть проверить прохождение переменных, чтобы при контроллер, просмотр и частичный этап. Вне сферы действия цикла я могу забрать эти переменные, внутри я не могу.

Повторение: установка привязки. Внутри внутри цикла моего сотрудника НИКОГДА не запускается.

Собираем вне триггеров цикла, и может даже прочитать переменные:

[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 

Почему мой цикл вдруг невидимым?

ответ

3

Вы на самом деле никогда не говорили Rails/Ruby в цикле.

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

Обратите внимание на .each добавлены к выражению

Подробнее о каждом here (связан с классом Array, но это будет то же самое для отношения ActiveRecord)

Смежные вопросы