Я пытаюсь выяснить, как добавлять записи в существующий объект для каждой итерации цикла.Мне трудно найти разницу между объектом и массивом.
У меня есть это
@events = Event.find(1)
@loops = Choices.find(:all, :limit => 5) #so loop for 5 instances of choice model
for loop in @loops
@events = Event.find(:all,:conditions => ["event.id = ?", loop.event_id ])
end
Я пытаюсь добавить новые события в существующий объект @eventsна основе идентификатора любой переменной цикла.Но оператор (=) просто создает новый экземпляр объекта @events.
Я пробовал (+ =) и (<<) в качестве операторов, но получил ошибку </p>
"У вас естьобъект nil, когда вы этого не ожидали! Возможно, вы ожидали экземпляр массива. Произошла ошибка при оценке nil "
Я попытался создать массив
events = []
events << Event.find(1)
@loops = Choices.find(:all, :limit => 5) #so loop for 5 instances of choice model
for loop in @loops
events << Event.find(:all,:conditions => ["event.id = ?", loop.event_id ])
end
Но я не знаюкак вызывать атрибуты массивов в представлении
С объектами я смог создать цикл внутри представления и также вызвать все атрибуты этого объекта ...
<table>
<% for event in @events %>
<tr>
<td><%= link_to event.title, event %></td>
<td><%= event.start_date %></td>
<td><%= event.price %></td>
</tr>
<% end %>
</table>
КакМогу ли я сделать это с набором массивов?
Так что вопросы
1) В чем разница между массивами и объектами?
2) Есть ли способ добавить в существующий объектдля каждой итерации?
3) Если я использую массив, есть ли способ вызвать атрибуты для каждой записи массива в представлении?