У меня есть массив с объектами, такими как:Получить объекты в массиве
mobilephones = [[#<Phone id: 941, name: "CEO", representation_edavis_id: 172, phone_type_id: nil, number: "+12 3456789", sort_order: 13, remark: "mobile", created_at: "2015-03-05 13:27:24", updated_at: "2015-03-05 13:27:24", creator_id: nil, updater_id: nil, row_number: 941>],[#<Phone id: 946, name: "CFO", representation_edavis_id: 172, phone_type_id: nil, number: "+12 3456789", sort_order: 6, remark: "mobile", created_at: "2015-03-05 13:27:24", updated_at: "2015-03-05 13:27:24", creator_id: nil, updater_id: nil, row_number: 946>]]
Как я могу получить имя и номер атрибута всех объектов в массиве?
Я полагаю, как правило, он должен работать, как было предложено, но в моем контексте, внутри Rails приложения, я получил сообщение об ошибке:
undefined method `name' for #<Array:0x421c188>
По мнению _show.html.haml:
ActionView::Template::Error (undefined method `name' for #<Array:0x421c188>):
67: - list_mobilephones(r)
68: - @mobilephones.each do |phone|
69: %tr
70: %td= phone.name
71: %td= "#{phone.number} #{phone.remark}"
72:
В application_helper.rb:
def list_mobilephones(rep)
@mobilephones = []
rep.phones.each do |phone|
@mobilephones << [phone] if phone.remark == "mobile"
@mobilephones
end
end
Каков ваш ожидаемый выход? Массив хешей? Два массива? STDOUT? Еще один метод? – scones
Добро пожаловать в переполнение стека. Нет необходимости сообщать нам, что вы добавили/отредактировали в вопросе. Мы можем видеть, что вы изменили, это то, что приобретают члены более высокого ранга. Вместо этого поместите информацию в поток вопроса или просто разделите новую информацию с помощью '---', а SO разместит горизонтальное правило в вопросе в этой точке. –
@ Энтони, нет необходимости сообщать кому-то, что вы обновили ответ. Вот что нам сообщает временная метка редактирования. –