Ruby'de yeniyim ve çalışmalarımın bir parçası olarak CSV dosyasını fiyat ve buna göre sıralayabileceğim bir şeye dönüştürme görevim var. Ancak, bir nesne listesi oluşturmakta sorun yaşıyorum. Ben object1, object2 ve bunu yapabilirim biliyorum, ama bunu otomatik olarak nasıl yapacağımı bilmiyorum. Her yeni ürün oluşturmak zaman, sadece listede üzerine itin, ardındanRuby: Ayrı nesnelere bir CSV listesi döndürme
class Product
attr_reader :id, :name, :price, :stock
def initialize(id,name,price,stock)
@id = id
@name=name
@price=price
@stock=stock
end
def readout(variable)
print product.id
print "|"
print product.name
print "|"
print product.price
print "|"
print product.stock
puts ""
end
end
products = []
newproducts= []
File.open("products.csv" , "r") do |f|
f.each_line do |line|
products << line
end
end
puts products
products.each do |product|
data = product.split(",")
inbetween = Product.new(data[0].to_s, data[1].to_s, data[2].to_i, data[3].to_i)
inbetween
newproducts << inbetween
end
newproducts.sort_by{|x| x.price}
newproducts.each do |product|
print product.id
print "|"
print product.name
print "|"
print product.price
print "|"
print product.stock
puts ""
end
FasterCSV gemine bakmalısınız. Product.split (",") yapmak gömülü virgül gibi şeyleri işlemez. FasterCSV daha geniş bir giriş aralığını işleyecektir. Aksi halde, yaptığınız şeye çok benzer bir yaklaşım benimseydim. –
Korkarım okulum bir başlangıç için böyle şeyler yazmamızı istiyor. – Fallion