다음 코드는 txt 파일에서 행을 검색하므로 item_price의 모든 값을 내 응용 프로그램에서 사용할 수 있도록 합계합니다.CSV의 행을 합계하는 방법
CSV.foreach(dir, col_sep: "\t", headers: true).map do |row|
코드 따르십시오 :이 값은 블록에서 검색 할 싶습니다
module ParseText
def self.parse
require 'csv'
dir = Dir.glob("./public/system/file_attaches/files/*/*/*/*/*").max_by {|f| File.mtime(f)}
CSV.foreach(dir, col_sep: "\t", headers: true).map do |row|
records = row.to_h
purchaser = records["purchaser name"]
item_description = records["item description"]
item_price = records["item price"]
purchase_count = records["purchase count"]
merchant_address = records["merchant_address"]
merchant_name = records["merchant name"]
Merchant.create(name: merchant_name)
MerchantAddress.create(street: merchant_address, merchant_id: Merchant.last.id)
Purchaser.create(name: purchaser, count: purchase_count, merchant_id: Merchant.last.id)
Item.create(description: item_description, price: item_price, merchant_id: Merchant.last.id, purchaser_id: Purchaser.last.id)
end
end
end
왜 그냥 사용하지를'TOTAL_PRICE + = item_price' 당신은'정의 경우 TOTAL_PRICE = 0.0'이다. – Anthony
@Anthony가 말한 것은 작동하지만, 블록 외부의 var를 초기화하고 싶지 않으면'# inject'로 결과를 얻을 수 있습니다. 자세한 내용은 내 대답을 참조하십시오. – hoffm
@Anthony, 내가 내가하려고하면 : 문자열은 플로트로 강제 수 없습니다 –