Witam, mam następujący problem:
W mojej aplikacji napisanej w czystym Rubym mam w bazie tablicę items o kolumnach e1 e2 e3 e4, chciałbym te dane pobrać do arraya.
Dodam, że baza stoi na postgresql, a operacje wykonuję poprzez gem ‘sequel’.
Póki co próbuję to sam rozwiązać, ale ciągle mi coś źle się zczytuje (źle zdefiniowana iteracja chyba )
array.each do |a|
DB.fetch("SELECT * FROM items") do |row|
a.e1 = row.e1
a.e2 = row.e2
a.e3 = row.e3
a.e4 = row.e4
end
end
Nie bardzo rozumiem co Twój kod ma robić. Jeżeli array ma typ Array to nie można się odwoływać w nim do pól poprzez .e1 .e2 itd. Jeżeli jest to tablica wielowymiarowa to obowiązuje notacja [[x,x]]. Jeżeli hash to array[“klucz”]. I tak jeżeli chcesz z wszystkich rekordów w bazie utworzyć płaską tablicę możesz to zrobić np. tak:
a = Array.new
DB.fetch("SELECT * FROM items") do |row|
a.push(row[:e1])
a.push(row[:e2])
a.push(row[:e3])
a.push(row[:e4])
end
Fetch zwraca tablice Hash dla każdego wiersza.
dziękuję za podpowiedzi, nakierowały mnie na właściwy trop:
items.each do |row|
p = Array1.new
p.e1 = row[:e1]
p.e2 = row[:e2]
p.e3 = row[:e3]
p.e4 = row[:e4]
array1.push(p)
end
o to mi chodziło Jeszcze raz dzięki