рельсы 3 массива неопределенный метод - PullRequest
1 голос
/ 07 марта 2012

У меня есть переменные элементы вызова, имеющие массив элементов, который содержит следующее значение

[[#<Item id: 16, item_name: "Titan limited edition watch", description: "This is watch", reference_no: 21541, price: 5000, currency_type: nil, payment_type: "0", created_at: "2012-02-29 06:53:38", updated_at: "2012-02-29 06:53:38", quntity: 500, avatar_file_size: 8805, avatar_file_name: "images.jpg", avatar_content_type: "image/jpeg", avatar_updated_at: "2012-02-29 06:53:38">], [#<Item id: 25, item_name: "Titan limited edition watch", description: "this is watch", reference_no: 2, price: 5000, currency_type: nil, payment_type: "0", created_at: "2012-03-02 13:06:39", updated_at: "2012-03-02 13:06:39", quntity: 5, avatar_file_size: 8805, avatar_file_name: "images.jpg", avatar_content_type: "image/jpeg", avatar_updated_at: "2012-03-02 13:06:39">]]

Я пытаюсь сделать цикл, подобный этому

@items.each do |item|

end    

, а переменная элемента содержит следующее значение

[#<Item id: 16, item_name: "Titan limited edition watch", description: "This is watch",     reference_no: 21541, price: 5000, currency_type: nil, payment_type: "0", created_at: "2012-    02-29 06:53:38", updated_at: "2012-02-29 06:53:38", quntity: 500, avatar_file_size: 8805, avatar_file_name: "images.jpg", avatar_content_type: "image/jpeg", avatar_updated_at: "2012-02-29 06:53:38">]

но когда я пытаюсь выполнить следующее, я получаю ошибку

@items.each do |item|    
  item.item_name    
end    

ошибка

undefined method `item_name' for #<Array:0xb6c1dffc>    

, пожалуйста, помогите мне.Спасибо.

1 Ответ

0 голосов
/ 07 марта 2012

У вас есть массив массивов;внутри цикла item - это массив, а у массива нет метода item_name.Вам нужно добраться до элемента внутри массива.

@items.each do |item|
  item[0].item_name
end

Вы также можете flatten массив сделать его одномерным:

@items.flatten.each do |item|
  item.item_name
end
...