我覺得我正在服用瘋狂的藥丸,但是我剛剛碰到一堵磚牆,無法再對此進行破解。答案似乎很簡單,但我的頭腦麻木,我無法突破這堵牆。使用excel文件內容初始化對象並保存到數據庫
我使用Roo gem導入excel文檔(xls格式)並將其推送到數組中。我結束了一系列數組。很簡單,這很好。
因此,然後我嘗試並採取該數組的值,並將它們分配給對象的屬性。這個技巧似乎是遍歷行,將數組賦值給適當的對象屬性,保存,然後移動到下一行。我確信我正在做的是各種垃圾,但我被卡住了,無法想出解決方案。
這裏是我的控制器:
class PlanesController < ApplicationController
def new
@plane = Plane.new
@plane.upload
end
end
這是我的模型:
require 'roo'
class Plane < ActiveRecord::Base
attr_accessor :id, :name, :version
def upload
arr = []
sheet1 = Roo::Spreadsheet.open('lib/assets/test.xls')
sheet1.each { |hash| arr<<hash}
i = 0
while i < arr.length do
@id = arr[i][0].to_int
@name = arr[i][1]
@version = arr[i][2]
i += 1
end
end
end
主要是如何獲取存儲在「改編」數組中的我的價值觀被分配到我的對象?我希望@id結束Plane.id,它可以通過實例變量@plane在我的控制器中訪問。我覺得我做錯了,因爲我基本上試圖根據電子表格的長度創建多個對象,並保存每個新行以填充我的數據庫。就像我說的,可能是超級垃圾,但我錯過了一些基本的東西,並感謝幫助。