0
对红宝石来说,我还算是一个先行者;我一直在尝试使用roo,仍然无法导入任何东西!经过几个小时的搜索,我认为问题来自不再使用accessible_attributes的新rails版本(教程很好,但它们都使用此命令...) 没有不能使用roo with attr_accessible
这里是型号代码i我正试图修复。
#attr_accessible :name, :price, :released_on
#validates_presence_of :price
def self.open_spreadsheet(file)
case File.extname(file.original_filename)
when '.csv' then Roo::Csv.new(file.path)
when '.xls' then Roo::Excel.new(file.path)
when '.xlsx' then Roo::Excelx.new(file.path)
else raise "Unknown file type: #{file.original_filename}"
end
def self.import(file)
spreadsheet = open_spreadsheet(file)
header = spreadsheet.row(1)
(2..spreadsheet.last_row).each do |i|
row = Hash[[header, spreadsheet.row(i)].transpose]
product = find_by_id(row["id"]) || new
product.attributes = row.to_hash.slice #(*accessible_attributes)
product.save!
end
end