У меня есть хэш значений, которые я пытаюсь просмотреть, чтобы отобразить значения на моем представлении.undefined method `[] 'for nil: NilClass Когда Looping Through Ruby Array
Хэш устанавливается как:
{:position=>#<Position id: 2, user_id: 1, title: "Something", city: "Denver", state: "CO",
created_at: "2012-07-06 02:55:42", updated_at: "2012-07-06 02:55:42">, :experience=>[#
<Experience id: 4, user_id: 1, position_id: 2, description: "Did some stuff", created_at:
"2012-07-02 06:24:33", updated_at: "2012-07-02 06:24:33">, #<Experience id: 6, user_id: 1,
position_id: 2, description: "Did other stuff", created_at: "2012-07-02 06:24:33",
updated_at: "2012-07-02 06:24:33">]}
Он создан, принимая результаты ActiveRecord и вставляя их в хэш (если вы хотите больше деталей, то я рад, чтобы добавить их).
На мой взгляд, я пытаюсь Переберите хэша:
<% for i in [email protected] %>
<%= @positions[i][:position][:title] %>
<%= @positions[i][:position][:city] %>
<% end %>
Когда я открываю его в браузере, я получаю сообщение об ошибке undefined method '[]' for nil:NilClass
. Если я использую только @positions[i]
, он выгрузит исходный хэш (первый, затем второй и т. Д.). Когда я добавляю [:position]
, он не работает. Я могу получить доступ к значениям в консоли, используя @positions[0][:position][:title]
. Когда я попытался написать цикл в консоли, я получил ту же ошибку.
Я знаю, что i
подсчитывает, потому что я могу отображать это значение в браузере, и он работает правильно.
Я попытался использовать @positions.each do |job|
, но столкнулся с той же ошибкой. Я попытался добавить другие индексы в другие места: @positions[i][:position][0]
.
В принципе, у меня есть две модели: положение и опыт. Опыт - это ребенок в должности. Я хочу получить опыт для данной позиции, но только определенный опыт, подобный тем, которые происходят в течение определенного периода времени. Скорее всего, лучший подход к этому, и я просто не знаю, поэтому я открыт для предложений.
Спасибо.
Это сработало отлично! Спасибо! –